数据库设计关系 - 产品,类别,属性

时间:2018-04-23 11:48:39

标签: mysql sql database database-design

我有两张桌子:

  • 产品(id,name,category_id)
  • 类别(id,名称)

我想在产品属性中添加第三个属性,但属性是按类别指定的。那会是这样的吗?

  • attributes(id,name)
  • attribute_product(attribute_id,product_id,value)
  • attribute_category(attribute_id,category_id)

2 个答案:

答案 0 :(得分:1)

根据您的问题做出的假设:

  • 一个产品可以有1个且只有1个类别
  • 您说属性是按类别
  • 指定的

因此,将属性链接到类别。类别X的产品将自动继承属性。

enter image description here

但是,这会强制值和属性。因此,所有产品都具有相同的属性值(例如,Cagetory Clothes中的所有产品都是相同的颜色!)因此,您希望属性在同一类别中与产品不同:< / p>

enter image description here

这样,属性的名称(如果需要,它就存在)链接到一个类别,而链接到一个东西。我假设你想要每个对象有多个属性,每个属性需要1个类别。

例如:

  • 类别:衣服
  • 产品:衬衫
  • Clotes的属性:大小和颜色
  • 属性值:L和蓝色

所以,这就是说你的初步想法很好(!)。

答案 1 :(得分:0)

你有3&#34; entiities&#34; (到目前为止) - 产品,类别,属性。这些是表格。

基本上有两种关系&#34;你可以:&#34;一对多&#34;和&#34;多对多&#34;。前者只需要一个表中的id链接到另一个表。后者需要一对具有ids对的额外表格。

决定实体之间的关系。

完成工作。