今天遇到一个很特别的需求就是当用户发布产品时,商品的属性是不确实的(每类不同的产品都有不同的属性,而且产品分类很多,有点类似淘宝网那个发布产品吧.)
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。
至少有以下两种方法。
一个字段存所有属性,这种方式的缺陷在于修改某一个属性的值时比较麻烦。
修改可以删了,新增
@了悟: 来自10年后的回复。
参考,以前做了回答:http://space.cnblogs.com/question/13907/
觉得一楼的设计不错。