2

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

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

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

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

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

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

提前谢谢了。

4

2 回答 2

0

我认为您可以修改您的实体并添加一个激活实体,这样您的实体将如下所示:

  1. 用户有多个激活 (OneToMany)
  2. 激活属于一个用户(ManyToOne),属于一个团队(ManyToOne)
  3. 团队有几个激活 (OneToMany)

您还可以通过 Activation 实体定义 User 和 Team 之间的 ManyToMany 关系。

于 2012-10-23T14:20:42.607 回答
0

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

于 2012-10-23T14:21:31.057 回答