4

假设我有三个实体:页面、产品和媒体。

好吧,我想有这个现实:

Page <-(many-to-many)-> Media

Product <-(many-to-many)-> Media

使用解决这个问题的通用方法,它会产生两个看起来非常相似的表。

我的问题是:我可以使用 Doctrine 为两个关系使用一个表吗?

我只需要一种建议新列的方法,该列将指示特定行上的媒体对应物是产品还是页面。

4

1 回答 1

2

答案是否定的。关系表 N:N 必须具有唯一的表名。但是......你可以创建一个这样的结构:

Page <--1:N--> MyGreatJoinTable <--N:1--> Media
Product <--1:N--> MyGreatJoinTable <--N:1--> Media

您不需要描述引用,因为它引用了不同的表,但如果您愿意,您可以这样做。

当然 MyGreatJoinTable 至少会有三列:

- PageId
- ProductId
- MediaId
于 2013-09-21T07:51:33.833 回答