2

ORM (Doctrine) で次のシナリオを最適な方法で実装するにはどうすればよいですか?

シナリオ: ユーザーは 1 つまたは複数のチームに所属できます。チームは、1 人または複数のユーザーで構成できます。

というわけで、最初の部分は問題ありませんが、ユーザーが所属するチームごとに「activation_status」を持ってほしいと思います。

私は SQL およびリレーショナル データベースから来ているので、多対多の関係テーブル「team2user」に「activation_status」フィールドを追加できます。

-> データベース フィールド: team_id、user_id、activation_status

しかし、Doctrine でそれを実装するにはどうすればよいでしょうか? エンティティのチームとユーザーを永続化します。しかし、activation_status を正しく永続化するにはどうすればよいでしょうか?

よろしくお願いします。

4

2 に答える 2

0

エンティティを修正してアクティベーション エンティティを追加すると、エンティティは次のようになります。

  1. ユーザーには複数のアクティベーションがあります (OneToMany)
  2. アクティベーションは 1 人のユーザー (ManyToOne) に属し、チーム (ManyToOne) に属します
  3. チームには複数のアクティベーションがあります (OneToMany)

Activation エンティティを介して、ユーザーとチームの間の ManyToMany 関係を定義することもできます。

于 2012-10-23T14:20:42.607 に答える
0

これを達成する唯一の方法は (少なくとも Doctrine 2.1 までは、それがより高いバージョンでどのように見えるか 100% 確信が持てません)、別のエンティティを作成し、リレーションを使用してエンティティTeamUserを関連付けることです。次に、新しいエンティティ内に必要なものを何でも入れることができます(例では、追加のプロパティになります)UserTeamManyToOne$activationStatus

于 2012-10-23T14:21:31.057 に答える