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