1

私はdoctrine2を使用してsymfony2プロジェクトに取り組んでいます。フォームに接続されたユーザーが、もちろん10個の値とDBに10個の列を持つ10個の新しいフィールドを追加するための新しいボタンを作成することについて問題があります:

つまり、ユーザーが「新規追加」ボタンをクリックすると、XV 値を持つ 1 つのフィールド X を追加し、データベースにも 1 つの列「X」を作成し、次に YV を持つ 2 番目のフィールド Y を作成できます... 10 まで。 「小数」などの同じタイプのフィールド。

ajaxを使用してフォームに新しいフィールドを追加することに問題はありませんが、私の質問は次のとおりです。

1- doctrine2 を使用して DB のテーブルに新しい列を作成し、値も挿入する方法は?

2-新しい列が作成されると同時にクラスエンティティとクラスフォームを自動的に更新する方法は?

4

1 に答える 1

1

まず第一に、あなたが達成しようとしている目標を完全には理解していなかったことを認めなければなりません。しかし、私はあなたの設計に概念上の誤りがあることをほぼ確信しています。

次の 2 つの概念を区別する必要があります。

  • データベースの INSERT、UPDATE、DELETE データなどのDML (Data Manipulation Language)。新しいレコードを作成 (INSERT) することを意味します。
  • CREATE TABLE (新しいデータベース関係を作成するため) や ALTER TABLE (データベースに新しい列を追加するため) などのDDL (データ定義言語)。

DDL (説明によると ALTER TABLE ステートメント) を使用して、データベースに新しい列を動的に追加しようとしていますが、これは効果的ではなく、まったくお勧めできません。そのようにする非常に正当な理由があるはずです(たとえば、構築しているシステムがデータベース管理ツールまたはこのようなものである場合...)。

アーキテクチャを完全に再考および再設計し、DMLを使用して目標を達成することを強くお勧めします。柔軟なデータ構造を設計し、新しい列を追加するのではなく、動的データベースに新しいレコードを挿入することで、問題を解決できると確信しています。

データベース構造を再設計した後、Symfony と Doctrine を使用してタスクを実装するのは非常に簡単になります。

于 2013-08-18T23:28:59.920 に答える