在 Doctrine 中创建多对多关系的最佳实践。

Posted

技术标签:

【中文标题】在 Doctrine 中创建多对多关系的最佳实践。【英文标题】:Best practice in creating a many-to-many relationship in Doctrine. 【发布时间】:2016-06-10 01:38:18 【问题描述】:

我正在实现一个包含两个实体的系统:产品和类别。我想在这两个实体之间创建多对多关系,但我不想使用 Doctrine 中的多对多选项。我希望能够自己创建中间表(产品类别),以便以后我也可以访问该表。我应该如何定义这三个表之间的关系? (考虑到我的项目中产品和类别之间的关系是多对多的)。非常感谢带有教义 ORM 注释的简单演示示例,所以我没有弄错。非常感谢。最佳做法是什么?

【问题讨论】:

看这个问题***.com/questions/15616157/… 这将是一对多任何多对一关系的简单组合。 【参考方案1】:

您可以添加一个名为“ProductCategory”的中间实体。然后在“Product”和“ProductCategory”之间创建一对多关系,在“Category”和“ProductCategory”之间创建另一个一对多关系。

此解决方案甚至允许您向“ProductCategory”表添加一些额外的字段。

Product [1]------>[n] ProductCategory [n]<-------[1] Category

【讨论】:

以上是关于在 Doctrine 中创建多对多关系的最佳实践。的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 schema.graphql 在放大数据存储中创建多对多关系

使用嵌套字段在MongoDB / Mongoose中创建多对多关系?

在控制器中创建多对多模型的模式

使用flask-restplus在flask-SQLAlchemy中创建多对多关联表时出错

如何在实体框架中创建多对多映射?

如何在rails的同一个表中创建多对多