产品有多个类别
每个产品类别属性不相同且属性数量不相同。(如 颜色、尺寸、重量)
每个属性的参数不同且数量不相同(如 红色、绿色)实现如下产品类别1:
属性---颜色[红色、黑色、白色]
---尺寸[大、中、小]产品类别2:
属性---领形[圆领、V领、衬衫领]
---季节[春季、夏季、秋季、冬季]
---厚度[超薄、薄软、中等、加厚]
产品类别、属性、参数均可在后台添加。
请问这样的数据库怎么设计?
每个产品类别属性不相同且属性数量不相同。(如 颜色、尺寸、重量)
每个属性的参数不同且数量不相同(如 红色、绿色)实现如下产品类别1:
属性---颜色[红色、黑色、白色]
---尺寸[大、中、小]产品类别2:
属性---领形[圆领、V领、衬衫领]
---季节[春季、夏季、秋季、冬季]
---厚度[超薄、薄软、中等、加厚]
产品类别、属性、参数均可在后台添加。
请问这样的数据库怎么设计?
产品表(产品ID,产品名称,生产厂家)
产品属性表(产品ID,属性ID,属性值)
属性ID 属性名称
101 颜色
10101 红色
....产品表:
产品ID 属性ID产品类别:
类别ID 类别名称
1
2
1最直观的方法是一个大表包括所有字段,
2通用属性一个表如数量,专用属性一个表。查询数据的时候两个表用id关联。数据的查询
可能只想查询某一个,几个,公共属性,或者是专有属性。这时候想要让人来选择。可以把所有属性放在一个字段中,或n个字段中。假如是n个字段,字段是树形关系。--例子--
表a,为数据存储表,
字段为:
id,品名,产品类别,产品通用属性1,产品通用属性2,产品通用属性3,产品专用属性1,产品专用属性2,等
表b为名字表,字段只有一个,其中的每一条数据对应表a每一个字段。查询时,先从b表得到要查询的名字,然后构造成select,delete等语句。执行这个语句,去a表中查询。