Orm 原则2:管理多对多协会的最佳方式

Orm 原则2:管理多对多协会的最佳方式,orm,doctrine-orm,many-to-many,Orm,Doctrine Orm,Many To Many,Doctrine2 ORM有两种处理多对多关联的技术方法: 1/对于两个实体之间的“简单”关系,且无附加属性: 在实体之间使用大量关联 在这种情况下,直接使用链接表,而不使用关联实体 2/当链接表引入额外字段或多于2个实体时: 使用关联类(即“真实”实体)映射链接表 在这种情况下,直接多人关联被参与实体之间的OneToMany/manytone关联所取代 这两种实现完全不同 但是,在某些情况下,未来的业务需求可能很快需要更改简单的关联,例如添加额外的字段。 在这种情况下,我们必须用第二个

Doctrine2 ORM有两种处理多对多关联的技术方法:

1/对于两个实体之间的“简单”关系,且无附加属性:

  • 在实体之间使用大量关联
  • 在这种情况下,直接使用链接表,而不使用关联实体
2/当链接表引入额外字段或多于2个实体时:

  • 使用关联类(即“真实”实体)映射链接表
  • 在这种情况下,直接多人关联被参与实体之间的OneToMany/manytone关联所取代
这两种实现完全不同

但是,在某些情况下,未来的业务需求可能很快需要更改简单的关联,例如添加额外的字段。 在这种情况下,我们必须用第二个实现替换现有实体中的直接多个关联,并重构受影响的代码

  • 那么,始终使用关联实体来处理所有问题是否是一种好方法 有多少协会
  • 否则,最佳实践是什么 选择好的实现并处理这类域 模型进化

如果您有充分的理由相信在不久的将来,您将在多个联接表上拥有额外的属性,那么出于预防考虑创建一个实体是一个好主意。如果不是,那么最好使用正常的多人关系。然后,当需要更改时,可以随代码一起更新模式。如果您尝试遵循单一责任原则,那么就可以避免重构大量代码