组成另一个元素的多个外键
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 行)。
我正在尝试为一些盒子列表创建一个数据库。这些盒子包含不同数量的不同产品。我应该如何实现包含每个框内容的 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 行)。