1

我有一个简单的三张表结构,一个join table Tournament有一个OneToManywith GroupGroup还有一个ManyToManywith Team

在此处输入图像描述

这一切都很好而且很简单,但是正如您在上图中看到的那样,表中有group_tournament_id关键的“继承”(如果这是正确的术语)Tournament,这对我非常有帮助,因为我可以列出锦标赛中的所有球队,而无需循环遍历所有Group表。

那么,我如何让这个字段出现在jointable使用 symfony 2 和学说中

谢谢

4

1 回答 1

0

这是很常见的事情。它不能用ManyToMany关系来完成。相反,您需要有一个“加入实体”,GroupTeamOwnership.

该实体应该有一个组、一个团队 ID 和一个锦标赛 ID。

因此,您将拥有ManyToMany,而不是:

Group <-OneToMany-> GroupTeamOwnership <-ManyToOne-> Team

事实上,这种情况非常普遍,以至于教义文档甚至提到了它

为什么多对多关联不太常见?因为您经常希望将附加属性与关联关联,在这种情况下您需要引入关联类。因此,直接的多对多关联消失了,取而代之的是三个参与类之间的一对多/多对一关联。

于 2016-01-13T10:44:32.170 回答