0

これは私のSchema.ymlの正しい構文ですか?

  user_type_1 :
    inheritance:
    type:             concrete
    extends:          sfGuardUser
 columns:
   name: { type: string(255) }

  user_type_2 :
    inheritance:
    type:             concrete
    extends:          sfGuardUser
 columns:
   name: { type: string(255) }

私のプロジェクトは、 user_type_1user_type_2の2つのタイプのユーザーで構成されており、両方をsfGuardUserから継承する必要があります。継承タイプは、concreteまたはcolumn_aggregationを使用する必要があります。

どうも

4

1 に答える 1

0

あなたはどちらかを使うことができます、それはあなたが望むものに依存します。ドキュメントから:

具象
具象継承は、子クラス用に個別のテーブルを作成します。ただし、具体的な継承では、各クラスはすべての列(継承された列を含む)を含むテーブルを生成します。具体的な継承を使用するには、以下に示すように、子クラスに明示的なparent :: setTableDefinition()呼び出しを追加する必要があります。

列の集約
次の例では、entityという1つのデータベーステーブルがあります。ユーザーとグループは両方ともエンティティであり、同じデータベーステーブルを共有します。エンティティテーブルには、エンティティがグループであるかユーザーであるかを示すtypeという列があります。次に、ユーザーがタイプ1で、グループがタイプ2であると判断します。必要なのは、3つのレコード(以前と同じ)を作成し、親クラスからDoctrine_Table :: setSubclasses()メソッドへの呼び出しを追加することだけです。

具体的な継承を使用すると、2つのテーブル(user_type_1とuser_type_2)が作成され、column_aggregationは「type」列を持つ1つのテーブルのみを作成します。

于 2012-04-26T14:01:15.687 に答える