这是电商系统两个非常重要的概念,如果你能够理解这里面的关系网,会对你的代码思路更加清晰!
SPU:Standard Product Unit(标准化产品单元)
商品信息聚合的最小单元,一组可复用、易检索的标准化信息集合,该集合描述了一个产品的特性。
SKU:Stock Keep Unit(库存量单位)
库存进出计量的基本单元,可以是以件,盒,托盘等为单位。SKU这是对于大型连锁超市DC(配送中心)物流管理的一个必要的方法。现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的 SKU号。换句话说,就是购买的最小单位。
例如小米11就是一个商品的最小单元,称之为SPU;而小米11 8G+128G就是一个商品的具体落实,称之为SKU;
引申出来的就有一个 基本属性规格参数 与 销售属性
在京东小米11的详细页,我们可以看到一栏 ”规格与包装“,大致内容如下
而在 iPhone12的页面上,我们同样可以看到几乎相同的基本属性,只是属性值不同。
由此我们可以观察到这些 基本属性规格参数 与 “手机” 分类有关,而且是三级分类下的。
因此同一个分类下,不同的SPU基本属性字段相同,具体属性值不同。但同个SPU下,不同的SKU属性值是一样的。例如小米11和iPhone11都有机身长度,机身重量这些属性,但值不同。而对于小米11来说,8G和16G的机身重都是196g。
值得注意的是,属性较多我们一般还得整个分组,在上面的图中我们观察到了主体是个分组,里面放了入网型号,产品名称,上市年份,首销日期,上市月份。
在小米11购买页中,你选择不同的SKU,价格和库存量等各自的特殊属性是不同的,这就是每个SKU的销售属性。
pms_category【商品三级分类】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
cat_id | 分类id | BIGINT(19) | √ | 150 |
name | 分类名称 | CHAR(50) | | 手机 |
parent_cid | 父分类id | BIGINT(19) | | 12 |
cat_level | 层级 | INT(10) | | 3 |
show_status | 是否显示0-不显示,1显示 | TINYINT(3) | | 1 |
pms_attr【商品属性】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例1 | 内容示例2 |
---|---|---|---|---|---|
attr_id | 属性id | BIGINT(19) | √ | 120 | 210 |
attr_name | 属性名 | CHAR(30) | | 上市年份 | 库存 |
value_type | 值类型0-为单个值,1-可以选择多个值 | TINYINT(3) | | 0 | 0 |
search_type | 是否需要检索0-不需要,1-需要 | TINYINT(3) | | 1 | 0 |
value_select | 可选值列表用逗号分隔 | CHAR(255) | | 2020,2021 | 大量 |
attr_type | 属性类型0-销售属性,1-基本属性,2-既是销售属性又是基本属性 | TINYINT(3) | | 1 | 2 |
enable | 启用状态0 - 禁用,1 - 启用 | BIGINT(19) | | 1 | 1 |
catelog_id | 所属分类 | BIGINT(19) | | 150 | 150 |
show_desc | 快速展示【是否展示在介绍上;0-否 1-是】,在sku中仍然可以调整 | TINYINT(3) | | 0 | 0 |
pms_attr_group【属性分组】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
attr_group_id | 分组id | BIGINT(19) | √ | 130 |
attr_group_name | 组名 | CHAR(20) | | 主体 |
sort | 排序 | INT(10) | | 1 |
catelog_id | 所属分类id | BIGINT(19) | | 150 |
pms_attr_attrgroup_relation【属性&属性分组关联】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
id | id | BIGINT(19) | √ | 140000 |
attr_id | 属性id | BIGINT(19) | | 120 |
attr_group_id | 属性分组id | BIGINT(19) | | 130 |
attr_sort | 属性组内排序 | INT(10) | | 1 |
解读:上市年份为基本属性,归类在主体分组中,他们均属于150分类,即手机,在关联表是 120-130
pms_spu_info【spu信息】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
id | 商品id | BIGINT(19) | √ | 110 |
spu_name | 商品名称 | VARCHAR(200) | | 小米11 |
spu_description | 商品描述 | VARCHAR(1000) | | 小米11牛逼 |
catalog_id | 所属分类id | BIGINT(19) | | 150 |
brand_id | 品牌id | BIGINT(19) | | 11111111 |
publish_status | 上架状态0 - 下架,1 - 上架 | TINYINT(3) | | 1 |
pms_product_attr_value【spu属性值】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
id | id | BIGINT(19) | √ | 190 |
spu_id | 商品id | BIGINT(19) | | 110 |
attr_id | 属性id | BIGINT(19) | | 120 |
attr_name | 属性名 | VARCHAR(200) | | 上市年份 |
attr_value | 属性值 | VARCHAR(200) | | 2021 |
attr_sort | 顺序 | INT(10) | | 1 |
quick_show | 快速展示【是否展示在介绍上;0-否 1-是】 | TINYINT(3) | | 1 |
解读:有一个spu,名为小米11,它旗下有个属性为上市年份,属性值为2021
pms_sku_info【sku信息】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
sku_id | skuId | BIGINT(19) | √ | 222 |
spu_id | spuId | BIGINT(19) | | 110 |
sku_name | sku名称 | VARCHAR(255) | | 小米11 8G |
sku_desc | sku介绍描述 | VARCHAR(2000) | | 小米11 8G牛逼 |
catalog_id | 所属分类id | BIGINT(19) | | 150 |
brand_id | 品牌id | BIGINT(19) | | 11111111 |
sku_title | 标题 | VARCHAR(255) | | 小米11 8G |
price | 价格 | DECIMAL(18,4) | | 3999 |
sale_count | 销量 | BIGINT(19) | | 10000 |
pms_sku_sale_attr_value【sku销售属性&值】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 备注 |
---|---|---|---|---|
id | id | BIGINT(19) | √ | 211 |
sku_id | sku_id | BIGINT(19) | | 222 |
attr_id | attr_id | BIGINT(19) | | 210 |
attr_name | 销售属性名 | VARCHAR(200) | | 库存 |
attr_value | 销售属性值 | VARCHAR(200) | | 9999999 |
看完这么多表,相信你已经懵逼了,其实这确实是相对比较绕和复杂,对后端代码也是个不小的挑战。 首先我定义了一个三级分类,id为150,叫做手机。 定义两个属性,id为120的是上市年份,为基本属性;210的是库存,为销售属性。 定义一个基础属性分组,id为130,名为主体,归在手机分类。 将130和120相关联,也就是将上市年份归在主体。 定义一个SPU,也就是商品 小米11 id为110 填写spu属性值,也就是让小米11的上市年份定义为2021 定义一个SKU,也就是购买单位,小米11 8G id为222 填写sku属性值,也就是小米11 8G的库存定义为9999999 最终结果,在手机分类下有一个基础信息分组-主体,主体下有上市年份,手机分类下还有一个销售属性-库存。定义一个小米11的SPU,一个小米11 8G的SKU,让小米11的上市年份定义为2021,小米11 8G库存定义为9999999。
版权属于:乐心湖's Blog
本文链接:https://cloud.tencent.com/developer/article/1775849
声明:博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!