假设我有三个实体:页面、产品和媒体。
好吧,我想要这样的现实:
Page <-(many-to-many)-> Media
Product <-(many-to-many)-> Media
使用常见的方法来解决这个问题,会得到两个看起来非常相似的表。
我的问题是:我可以使用 Doctrine 为两个关系使用一个表吗?
我只需要一种建议新列的方法,该列将指示特定行上的媒体对应物是产品还是页面。
最佳答案
答案是否定的。关系表 N:N 必须有唯一的表名。
但是......你可以创建一个这样的结构:
Page <--1:N--> MyGreatJoinTable <--N:1--> Media
Product <--1:N--> MyGreatJoinTable <--N:1--> Media
您不需要描述引用,因为它指的是不同的表,但如果您愿意,您可以这样做。
当然 MyGreatJoinTable 至少会有三列:
- PageId
- ProductId
- MediaId
关于symfony - Doctrine - 对多个(多对多)关系使用同一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18905152/