Symfony:如何将实体字段与多个实体关联

时间:2017-05-19 11:06:35

标签: php symfony doctrine-orm doctrine

我的数据库图对应于:

enter image description here

每个表都有自己的Symfony Entity类。我的应用视图显示:

enter image description here

我需要将折扣实体与多个实体相关联:Sneaker,Tshirt,Trouser或更多实体。

第一个解决方案:

在折扣和其他折扣之间创建N:N表。问题是我可能需要创建新表来应用折扣,然后我将不得不创建更多的N:N表。所以我放弃了这个解决方案。

第二个解决方案:

创建一个generic表,其中包含to_entityto_entity_id字段,可让我将折扣映射到to_entity实体目的地(Sneaker,Tshirt,Trouser或其他):

enter image description here

如何在Symfony中实施第二个解决方案?或者还有其他解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:0)

与学说的多态性并不容易。

  1. 尝试通过mapped superclasses and/or inheritance解决问题。通过使用单表继承可以简化您的第一个解决方案。您应该为每个新的"折扣"更改鉴别器地图。实体。
  2. 调查Dynamic mappingloadClassMetadata事件。您可以为实现自定义接口的每个实体(即DiscountableInterface)创建OneToMany关系。
相关问题