【发布时间】:2019-05-28 13:39:00
【问题描述】:
我正在使用关系数据库 (MySQL) 开发通用电子商务解决方案,我想管理这样的产品:
- 每个产品(例如木材、塑料、钢)都有几个属性(例如厚度、宽度、高度、颜色)。
- 反过来,每个属性可以有多个值(例如3 mm或5 mm表示厚度, blue 或 red 表示颜色等),在每种情况下都有不同的价格。
到目前为止一切顺利,我目前的方法依赖于 4 个表:
- 产品(id、名称、描述)
- 属性(id、名称、描述、类型)
- attribute_values(id、attribute_id、值)
- attribute_product(attribute_id、product_id、价格)
有了这个数据模型,我可以很好的结合产品和属性,例如:
- 定义一个名为
wood的产品,它有2 个属性(thickness和height),而3 mm和5 mm选项用于厚度和blue和red颜色选项...
价格计算会出现问题,因为如果我在 attribute_product 数据透视表中声明 price,我仍然不知道选择了哪个值该特定属性和产品。
如何修改数据模型以能够以某种方式将产品与属性值“链接”? 提前致谢。
【问题讨论】:
-
请提供一些数据样本和预期结果集
标签: mysql sql database database-design