跟价格和库存相关的属性一般叫做”销售属性”或”SKU属性”,比如服饰这类商品的销售属性一般就是”尺码“和”颜色”.存储这种关系的表可以叫做SKU表或库存表,比如该表的组成可以如下:
(SKU编号, 商品编号, SKU属性, 价格, 库存, SKU销量) 其中”商品编号”和”SKU属性”组成唯一键.
(1, 1, [1:1,2:3], 99, 400, 0) 其中 [1:1,2:3] 表示 “颜色为黑色,尺码为X”
(2, 1, [1:1,2:4], 99, 200, 0) 其中 [1:1,2:4] 表示 “颜色为黑色,尺码为XL”
(3, 1, [1:2,2:3], 99, 300, 0) 其中 [1:2,2:3] 表示 “颜色为白色,尺码为X”
(4, 1, [1:2,2:4], 99, 100, 0) 其中 [1:2,2:4] 表示 “颜色为白色,尺码为XL”
上面只列出商品1的4个SKU.其中”SKU属性”存储的是若干对”属性名:属性值”.
SKU前台显示:
比如选中某个”颜色”时,查询SKU表,该商品具有这个”颜色”的”尺码”都有哪些,并把可选的”尺码”返回.价格和库存则根据选定的”颜色”和”尺码”查询SKU表确定.
属性的存储可以这样设计:
属性名表(属性名编号, 属性名, 商品分类编号)
属性值表(属性值编号, 属性值, 属性名编号)
商品和属性关系表(自增编号, 商品编号, 属性名编号, 属性值编号)
商品和属性筛选表(商品编号, 商品具有的属性值编号)
建立筛选表的目的就是实现商城的多属性筛选功能,可以使用数据库全文检索进行,比如MySQL:
select * from 商品表
inner join 商品和属性筛选表
on 商品表.商品编号 = 商品和属性筛选表.商品编号
where 商品表.商品分类编号 = 2
and MATCH(商品和属性筛选表.商品具有的属性值编号) AGAINST(+1 +3 IN BOOLEAN MODE)
order by 商品表.评论数 DESC LIMIT 10 OFFSET 20;
上述SQL语句的大意就是筛选商品分类2下同时具有属性值1和3的商品,并按评论数从高到低排序后分页输出.
创业项目群,学习操作 18个小项目,添加 微信:790838556 备注:小项目!
如若转载,请注明出处:https://www.zoodoho.com/119710.html