组成另一个元素的多个外键

Multiple foreign keys composing another element

我正在尝试为一些盒子列表创建一个数据库。这些盒子包含不同数量的不同产品。我应该如何实现包含每个框内容的 table ?

我是 MySql 的新手,这就是为什么这个问题听起来很愚蠢的原因,但我不明白 table 如何容纳不同的产品及其每个盒子的数量。

提前致谢。

因为盒子和产品会有多对多的关系,你可以使用关联实体来解决这个问题:https://en.wikipedia.org/wiki/Associative_entity

你有一个table'box'、一个table'product'和一个table'box_product'

  • Box 与 box_product 具有一对多关系。

  • Product 也与 box_product

  • 存在一对多关系

在 box_product 中,您将只有 3 列:'id'、'box_id' 和 'product_id'。 (如果您使用复合主键,也可以是 2 列,并且省略 'id')

示例: 假设一个盒子有 3 个产品:A、B 和 C。它有一个 A、2 个 B 和 3 个 C。

对于这个例子,会有:

  • 框中一行
  • 产品中有 3 行(您不需要在产品中复制行 table,每个产品只需一行,无论有多少箱子或数量)。
  • A 在 box_product 中有一行,B 在 box_product 中有 2 行,C 在 box_product 中有 3 行(因此关联实体总共有 6 行)。