如何在ORM(Doctrine)中实现以下场景的最佳方式?
方案: 用户可以属于一个或多个团队。 团队可以由一个或多个用户组成。
所以,第一部分没问题,但我希望用户为他所属的每个团队都有一个“activation_status” 。
因此,当我来自SQL和关系数据库时,我可以在我的多对多关系表“team2user”中添加“activation_status”字段
- >数据库字段:team_id,user_id,activation_status
但是如何用Doctrine实现呢?我坚持实体团队和用户。 但是如何正确地保持activation_status?
非常感谢提前。
答案 0 :(得分:0)
我认为您可以修改您的实体并添加激活实体,这样您的实体将是这样的:
您还可以通过激活实体在用户和团队之间定义ManyToMany关系。
答案 1 :(得分:0)
实现这一目标的唯一方法(至少在Doctrine 2.1中,我不是100%确定它在高级版本中的外观)是创建单独的实体TeamUser
并将其与User
相关联使用Team
关系的ManyToOne
个实体。然后你可以在你的新实体中放入任何你想要的东西(例如,它将是额外的$activationStatus
属性)