如何管理教义 2 中带有附加字段的复杂多对多关系?

Linda Hamilton
发布: 2024-10-24 18:36:02
原创
289 人浏览过

How to Manage Complex Many-to-Many Relationships with Additional Fields in Doctrine 2?

使用原则 2 管理具有附加字段的多对多关系

在数据库建模中,多对多关系通常涉及用于在实体之间建立连接的链接表。然而,当附加值与这些链接表关联时,传统的多对多关系就变得不够了。

考虑系统需要跟踪多个商店中的产品库存的场景。可以使用以下数据库结构创建基本的多对多关系:

Product:
  - product_id
  - product_name

Store:
  - store_id
  - store_name

Stock:
  - amount
  - product_id
  - store_id
登录后复制

但是,此结构缺乏跟踪产品和商店每种组合的库存量的能力。为了解决这个问题,可以将附加字段(例如“金额”)添加到“库存”表中。这会产生一个新实体,而不仅仅是一个链接表,因为它现在同时拥有标识符和值。

在原则 2 中,这可以使用以下实体定义来实现:

Product:
  /** @ORM\OneToMany(targetEntity="Entity\Stock", mappedBy="product") */
  protected $stockProducts;

Store:
  /** @ORM\OneToMany(targetEntity="Entity\Stock", mappedBy="store") */
  protected $stockProducts;

Stock:
  /** ORM\Column(type="integer") */
  protected $amount;
  /** @ORM\ManyToOne(targetEntity="Entity\Store", inversedBy="stockProducts") */
  protected $store;
  /** @ORM\ManyToOne(targetEntity="Entity\Product", inversedBy="stockProducts") */
  protected $product;
登录后复制

通过定义一个与“产品”和“商店”具有双向关系的单独“库存”实体,我们可以有效地管理与每个产品和商店组合相关的库存量。

以上是如何管理教义 2 中带有附加字段的复杂多对多关系?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!