mysql—具有属性的产品的数据模型,每个属性组合的价格不同

ctrmrzij  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(253)

我正在开发一个使用关系数据库(mysql)的通用电子商务解决方案,我想管理这样的产品:
每个产品(如木材、塑料、钢材)都有几个属性(如厚度、宽度、高度、颜色)。
反过来,每个属性可以有几个值(例如,厚度为3mm或5mm,颜色为蓝色或红色等),这些值在每种情况下都有不同的价格。
到目前为止,我目前的方法有4个表:
产品(id、名称、描述)
属性(id、名称、说明、类型)
属性\值(id,属性\ id,值)
属性产品(属性标识、产品标识、价格)
使用此数据模型,我可以很好地组合产品和属性,例如:
定义一个名为 wood 有两个属性( thickness 以及 height )反过来又有 3 mm 以及 5 mm 厚度和厚度选项 blue 以及 red 颜色选项。。。
价格计算带来的问题是,如果我在属性产品透视表中声明价格,我仍然不知道为该特定属性和产品选择了哪个值。
如何修改数据模型,使其能够以某种方式将产品与属性值“链接”?提前谢谢。

oaxa6hgo

oaxa6hgo1#

对,像attribute\u product这样的链接表只将一个示例链接到一个示例,而且您的产品可以有多个属性,所以模型不起作用。
你所说的产品属性就是大多数人所说的产品。这是有代价的东西。所以我就叫它“产品”。你所说的产品可能是产品类别。
因此属性表将是它的子表。
产品类别(id,desc)--例如“木材”
产品(id、名称、描述、类别、id、价格)--例如“木材:3x5mm红色”
属性(id、名称、描述、类型)--例如“厚度”
产品属性(id、产品id、属性id、值)--每个产品有多行;例如“3mm”“红色”

相关问题