【发布时间】:2013-08-02 11:38:08
【问题描述】:
Doctrine2 ORM 有两种技术方法来处理多对多关联:
1/ 对于 2 个实体之间的“简单”关系,并且没有附加属性:
- 在实体之间使用 @ManyToMany 关联
- 本例直接使用链接表,不使用关联实体
2/当链接表引入额外字段或超过2个实体时:
- 使用关联类,即“真实”实体来映射链接表
- 在这种情况下,直接的多对多关联被参与实体之间的OneToMany/ManyToOne关联替换
这两种实现方式完全不同。
但是,在某些情况下,未来的业务需求可能很快需要更改简单的关联,例如添加额外的字段。 在这种情况下,我们必须用第二个实现替换现有实体中的直接多对多关联,并重构受影响的代码。
- 那么,总是使用关联实体来处理所有 多对多关联?
- 否则,最佳实践是什么? 选择好的实现并处理这些领域 模型演变?
【问题讨论】:
标签: orm doctrine-orm many-to-many