【问题标题】:Doctrine 2 : Best way to manage many-to-many associations原则 2:管理多对多关联的最佳方式
【发布时间】:2013-08-02 11:38:08
【问题描述】:

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

1/ 对于 2 个实体之间的“简单”关系,并且没有附加属性:

  • 在实体之间使用 @ManyToMany 关联
  • 本例直接使用链接表,不使用关联实体

2/当链接表引入额外字段或超过2个实体时:

  • 使用关联类,即“真实”实体来映射链接表
  • 在这种情况下,直接的多对多关联被参与实体之间的OneToMany/ManyToOne关联替换

这两种实现方式完全不同。

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

  • 那么,总是使用关联实体来处理所有 多对多关联?
  • 否则,最佳实践是什么? 选择好的实现并处理这些领域 模型演变?

【问题讨论】:

    标签: orm doctrine-orm many-to-many


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 2013-03-24
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多