准备在数据库中建立一个产品库.基本表结构是这样的.产品表:产品ID,产品名称....产品介绍等.
产品属性表:属性ID,产品ID(各产品的属性可能是不一样的,比如有些产品有:转速,高度,有些产品有:密度,耐性.)
属性值表:属性ID,属性值(属性表可能有多个,如:[int],[char],[text]分别存储以上产品属性对应的值,比如高度的值是int型的,就存在[int]表里,属性值为字符型的就存在[char]表里....)这样的表结构设计出来我觉得读取起来会非常缓慢,请问各位高手,有什么更好的结构设计方案吗.
产品属性表:属性ID,产品ID(各产品的属性可能是不一样的,比如有些产品有:转速,高度,有些产品有:密度,耐性.)
属性值表:属性ID,属性值(属性表可能有多个,如:[int],[char],[text]分别存储以上产品属性对应的值,比如高度的值是int型的,就存在[int]表里,属性值为字符型的就存在[char]表里....)这样的表结构设计出来我觉得读取起来会非常缓慢,请问各位高手,有什么更好的结构设计方案吗.
[产品表]
产品ID 产品名称
1 开关
2 地板
3 淋浴房[产品属性表]
产品属性ID 产品ID 产品名称 产品属性
1 1 开关 材质类别
2 2 地板 地板材质
3 3 淋浴房 玻璃厚度
4 3 淋浴房 款式
5 3 淋浴房 表面/颜色
6 3 淋浴房 备注
[char]
id 产品属性ID 产品名称 产品属性 属性值(char)
1 1 开关 材质类别 (如:PPR水管,铝塑管,铜管,其它)
2 2 地板 地板材质 (如:柚木,铁线子,二翅豆,孪叶苏木)
3 3 淋浴房 款式 (如:海滨风情,古典,清新)
4 3 淋浴房 表面/颜色 (如:蓝色,白色,黄色)[int]
id 产品属性ID 产品名称 产品属性 属性值(int)
1 3 淋浴房 玻璃厚度 (如:11,22,33)[text]
id 产品属性ID 产品名称 产品属性 属性值(text)
1 3 淋浴房 备注 (大量的文字介绍)
属性表可能有多个,如:[int],[char],[text]分别存储以上产品属性对应的值统一为varchar 或者text int 型的属性值也不会用来加减运算吧
这样总共3张表,并且[产品属性表]与[产品属性值表]中产品名称不需要.