动态自引用多对多关系

Dynamic self referencing many-to-many relationship

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

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

我有 tables:

Types:
id
name

Products:
id
name
type_id

product_products
parent_id
child_id

假设我们在产品 table 中有多个产品。其中一些是:
(名称不相关)

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-cardboard 和 cardboardbox-paper 关系中,我想定义多少百分比的产品用于(一致性)来制作 cardboardbox 产品(比方说 80/20,不相关)

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

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

  1. 很多手工制作的多对多关系tables
  2. 很多很多专栏 product_product table

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

1) 是可行的方法 - 不确定是否真的 "lots" 一旦你计算出你想要存储的所有东西

product_product_consistency product_product_cost(这是否可以表示为 product_cost,然后根据 product_product_consistency 或类似的计算?)

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