mysql - 动态自引用多对多关系

标签 mysql sql dynamic many-to-many relationship

如何构造动态自引用多对多关系?

我有一个我无法克服的问题。

我有表:

Types:
id
name

Products:
id
name
type_id

product_products
parent_id
child_id

假设我们在 Product 表中有几个产品。其中一些是:
(名称无关)

CB1234 - products.type_id -> cardboard
CBB999 - products.type_id -> cardboardbox
CBP321 - products.type_id -> paper

TSH123 - products.type_id -> tshirt
FAB321 - products.type_id -> fabric
THR321 - products.type_id -> thread

现在我想告诉 product_product 关系,我有 cardboardbox,它由纸板和纸张类型的产品制成。在 cardboardbox-cardboard 和 cardboardbox-paper 关系中,我想定义产品用于制造 cardboardbox 产品的百分比(一致性)(比如说 80/20,不相关)

我对不同的产品有不同的案例。现在我想定义 T 恤 Fabric 和 T 恤线之间的关系,但我想定义该产品的 Fabric 和线成本而不是一致性。

产品和产品参数数量不固定。可能有 500 种不同的产品以及它们之间的不同关系。这个问题有什么好的做法?我想到了几种方法

  1. 大量手工制作的多对多关系表
  2. product_product 表的很多列

在这两种情况下,在设计中都有一些我不喜欢的东西,但也许这些是正确的方法,也许我从一开始就设计了错误的数据库。

最佳答案

1) 将是要走的路——一旦你计算出你想要存储的所有东西,不确定是否真的有“很多”

产品_产品_一致性 product_product_cost(这是否可以表示为 product_cost,然后根据 product_product_consistency 或类似的东西计算?)

最终的用法是什么,你想问数据什么样的问题?

关于mysql - 动态自引用多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40513607/

相关文章:

MySQL 授予用户权限错误

javascript - 使用 Node 动态填充对象的 JSON 数组

c++ - 如何制作一个动态大小的数组?动态数组的一般用法(也可能是指针)?

mysql - PHP - 平均列,其中另一列是特定名称

php - CSS/PHP/MySQL - 将结果显示为 3 列

Mysql:从每只猫[一对多关系]得到2个结果

sql - 单击弹出表单中子表单中的字段时的更多信息

python - 使用 ODBC 时可以在 SQL 注释中添加任意文本吗?

使用动态数组的 C++ 逻辑错误

mysql - SQL添加忽略重复的新列