Doctrine - 数据库关系 - 多对多添加状态

时间:2012-10-23 14:14:26

标签: symfony orm doctrine many-to-many relational

如何在ORM(Doctrine)中实现以下场景的最佳方式?

方案: 用户可以属于一个或多个团队。 团队可以由一个或多个用户组成。

所以,第一部分没问题,但我希望用户为他所属的每个团队都有一个“activation_status”

因此,当我来自SQL和关系数据库时,我可以在我的多对多关系表“team2user”中添加“activation_status”字段

- >数据库字段:team_id,user_id,activation_status

但是如何用Doctrine实现呢?我坚持实体团队和用户。 但是如何正确地保持activation_status?

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

我认为您可以修改您的实体并添加激活实体,这样您的实体将是这样的:

  1. 用户有多个激活(OneToMany)
  2. 激活属于一个用户(ManyToOne),属于一个团队(ManyToOne)
  3. 团队有几个激活(OneToMany)
  4. 您还可以通过激活实体在用户和团队之间定义ManyToMany关系。

答案 1 :(得分:0)

实现这一目标的唯一方法(至少在Doctrine 2.1中,我不是100%确定它在高级版本中的外观)是创建单独的实体TeamUser并将其与User相关联使用Team关系的ManyToOne个实体。然后你可以在你的新实体中放入任何你想要的东西(例如,它将是额外的$activationStatus属性)