2012-10-23 40 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属性)