产品表设计:
A类产品有:a
B类产品有:a,b
C类产品有:a,b,c
D类产品有:a,b,c,d
我早前也做这种功能,可能和你不尽相同,但是我是仿照淘宝做的:
三个表:
产品分类 ProductDir
产品表 ProductList: productId 、productName 、 productDirId
产品属性表 ProductProperty:
productId 、 PropertyType(属性类型:材质、适应对象等) 、PropertyValue 、PropertyName
还有一些特殊产品的属性,比如鞋子的颜色、尺码、库存、价格,要一一对应起来,我又建了一个表:
ProductShoeColorSize:
ProductId 、ColorValue(颜色)、SizeValue(尺码)、PriceValue(价格)、StockQuantity(库存)
保存这种产品属性的时候,是批量保存的,比如一个鞋子有3种颜色、每种颜色有3个尺码,这里的属性保存个数就是 3 X 3 = 9。
问题:
不同产品的属性不一样,特别是网站展示产品,需要从多个角度,多个分类来查询产品信息,类似目前大多数购物网站查询商品,有商品主分类为主线条,每一个主分类进去都会有一些相关分类及属性可供进一步的筛选
方案:
现设计几个表:产品表、产品分类表、属性组表、属性基础表、品类与属性组表
【产品表】:存放产品档案,字段有产品ID、产品名称、产品描述等
【产品分类表】:存放产品的所有分类,字段有分类ID、分类名称、上级分类、是否主分类
【属性组表】:需与属性基础表联合起来看,用来给属性基础表中的字段赋予不同的意义,字段有属性组ID、属性组名称、属性ID、属性名称
【属性基础表】:存放每个产品的所有属性值,该表中的同一字段针对不同产品不同属性组具有不同的意义,具体意义通过属性组表来定义,字段有产品