我正在寻找最佳实践解决方案......
我的表中包含称为产品的产品,某些产品具有需要与其关联的其他产品(选项),以便当用户查看产品时,他们还会收到与其关联的所有其他产品(选项)的列表
我的第一直觉是创建一个简单的参考表。虽然这有效,但您会发现可能存在大量冗余数据。
**Ref table**
Product, product (option) to be associated
widget1, widget2
widget1, widget3
widget4, widget2 and so on...
我的下一次尝试是合并密钥表。
**Products table**
product_id
key_id
**Key table**
key_id
product_id_fk
key_id不会是唯一的,因为密钥应该能够引用多个产品(选项)。
这样做效果稍好但如果所有选项集都被认为是唯一的,它仍然会导致问题。此方法仅允许将一个集合引用(选项组)与产品相关联。
我认为解决此问题的最有效方法之一是创建所有唯一的选项集,然后引用产品的每个唯一集。一些帮助?
答案 0 :(得分:1)
参考表中的“冗余数据”是什么?
widget2, widget1
行将是多余的,因为您已经捕获了与widget1, widget2
行的关系。product_id
存储了你写“widget1”而不是存储实际产品名称的列。比product_id