如何设计SKU表结构

spu和sku

这里拿iphone6s举例,它身上有很多的属性和值, 比如

  • 毛重: 420.00 g

  • 产地: 中国大陆

  • 容量: 16G, 64G, 128G

  • 颜色: 银, 白, 玫瑰金

spu 指的是商品(iphone6s),spu属性就是不会影响到库存和价格的属性, 又叫关键属性,与商品是一对一的关系,比如

  • 毛重: 420.00 g

  • 产地: 中国大陆

sku指的是具体规格单品(玫瑰金 16G),sku属性就是会影响到库存和价格的属性, 又叫销售属性,与商品是多对一的关系,比如

  • 容量: 16G, 64G, 128G

  • 颜色: 银, 白, 玫瑰金

所以iphone6s则会生成 3 * 3 = 9 个 sku

业务逻辑

1.同一商品不同SKU库存和售价不同.

2.不同类型的商品具有不同的属性名和属性值(如汽车和服饰),所以属性需要支持后期添加和维护.

3.在某个商品分类下通过属性筛选商品.

4.商家某件商品的销量统计,该件商品内几个不同SKU的销量统计.

5.更多…

表设计

商品表

(商品编号, 商品名称, 商品分类编号, 卖家编号, SPU销量, 评论数)

(1, '裤子名', 2, 1, 0, 3)

(2, '外套名', 3, 1, 0, 5)

(3, '内裤名', 4, 1, 0, 2)

(4, '袜子名', 5, 1, 0, 3)

分类表

(商品分类编号, 分类名称, 父分类编号)

(1, 男装, 0)

(2, 裤子, 1)

(3, 外套, 1)

(4, 内裤, 1)

(5, 袜子, 1)

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.

属性名表

(属性名编号, 属性名, 商品分类编号, 父属性编号)

(1, 颜色, 2, 0)

(2, 尺码, 2, 0)

(3, 品牌, 2, 0)

上面只列出裤子这个分类的3个属性名.

属性值表

(属性值编号, 属性值, 属性名编号)

(1, 黑色, 1)

(2, 白色, 1)

(3, X, 2)

(4, XL, 2)

(5, 七匹狼, 3)

(6, 九牧王, 3)

上面只列出裤子这个分类的6个属性值.

商品和属性关系表

(自增编号, 商品编号, 属性名编号, 属性值编号)

(1, 1, 1, 1) 商品1颜色为黑色

(2, 1, 1, 2) 商品1颜色为白色

(3, 1, 2, 3) 商品1尺码为X

(4, 1, 2, 4) 商品1尺码为XL

本作品采用《CC 协议》,转载必须注明作者和本文链接
是非之外有一座花园,我们会在那里相遇
本帖由系统于 3年前 自动加精
Martist
讨论数量: 3
秦晓武

有个疑问:

【SKU 表 (库存表)】里的字段商品编号, SKU属性和【商品和属性关系表】是对应关系吧?哪个为主,哪个为辅呢?

先插入【商品和属性关系表】同步【SKU 表 (库存表)】,还是根据【SKU 表 (库存表)】去新增【商品和属性关系表】?

3年前 评论

我没看懂属性名表的父属性id干什么用的,规格为什么要用树形结构啊

1天前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!