2012-10-23 76 views
2

如何在ORM(Doctrine)中實現以下場景的最佳方式?原則 - 數據庫關係 - 多對多添加狀態

場景: 用戶可以屬於一個或多個團隊。 一個團隊可以由一個或多個用戶組成。

因此,第一部分沒有問題,但我希望用戶爲他所屬的每個團隊都有「activation_status」

所以當我從SQL和關係數據庫來我可以添加一個「activation_status」字段我的許多一對多關係表「team2user」

- >數據庫字段:TEAM_ID,USER_ID,activation_status

但是我怎麼能用Doctrine來實現呢?我堅持實體團隊和用戶。 但是,如何正確保持activation_status?

非常感謝提前。

+0

我將添加新實體「激活」,因爲它對我來說似乎是最好的解決方案。但是添加一個TeamUser實體將是一種替代方法。 – user1768560

回答

0

我想你可以修改你的實體並添加激活實體,這樣,你的實體會是這樣的:

  1. 用戶有幾個的激活(一對多)
  2. 激活屬於一個用戶(多對一)和屬於一個組(多對一)
  3. 隊有幾個的激活(一對多)

還可以通過的Activa定義用戶和小組之間多對多關係實體。

0

只有這樣,才能做到這一點(至少到2.1學說,我不是100%肯定它是如何看起來更高版本)是建立獨立的實體TeamUser,並使用ManyToOne關係UserTeam實體相關的。然後你可以把你想要的任何東西放到你的新實體中(例如它將會是額外的$activationStatus屬性)