携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第9天,点击查看活动详情
1.Spu和Sku
1.1掌握Spu和Sku的关系
SPU = Standard Product Unit (标准化产品单元)
SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。
SKU = stock keeping unit(库存量单位)
SKU即库存进出计量的单位, 可以是以件、盒、托盘等为单位。
SKU是物理上不可分割的最小存货单元。在使用时要根据不同业态,不同管理模式来处理。在服装、鞋类商品中使用最多最普遍。
举个例子:
购买手机的时候,你可以选择VIVO X70系列手机,X70系列手机的生产制造商是VIVO,品牌是VIVO,手机分类也是手机,不过X70系列手机有多款,比如 X70 、X70 Pro 、 X70 Pro +,每款手机的架构也不一样,颜色也不一定一样,那么这个例子中哪些是Spu哪些是Sku呢?
抽取相同的信息: SPU
手机系列:X70系列
厂家:VIVO
品牌:VIVO
分类:手机
有可能不同的信息: SKU
内存
颜色
价格
1.2表结构设计
1.2.1 SPU和SKU
SPU
CREATE TABLE `spu` (
`id` varchar(60) NOT NULL COMMENT '主键',
`name` varchar(100) DEFAULT NULL COMMENT 'SPU名',
`intro` varchar(200) DEFAULT NULL COMMENT '简介',
`brand_id` int(11) DEFAULT NULL COMMENT '品牌ID',
`category_one_id` int(20) DEFAULT NULL COMMENT '一级分类',
`category_two_id` int(10) DEFAULT NULL COMMENT '二级分类',
`category_three_id` int(10) DEFAULT NULL COMMENT '三级分类',
`images` varchar(1000) DEFAULT NULL COMMENT '图片列表',
`after_sales_service` varchar(50) DEFAULT NULL COMMENT '售后服务',
`content` longtext COMMENT '介绍',
`attribute_list` varchar(3000) DEFAULT NULL COMMENT '规格列表',
`is_marketable` int(1) DEFAULT '0' COMMENT '是否上架,0已下架,1已上架',
`is_delete` int(1) DEFAULT '0' COMMENT '是否删除,0:未删除,1:已删除',
`status` int(1) DEFAULT '0' COMMENT '审核状态,0:未审核,1:已审核,2:审核不通过',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
复制代码
SKU
CREATE TABLE `sku` (
`id` varchar(60) NOT NULL COMMENT '商品id',
`name` varchar(200) NOT NULL COMMENT 'SKU名称',
`price` int(20) NOT NULL DEFAULT '1' COMMENT '价格(分)',
`num` int(10) DEFAULT '100' COMMENT '库存数量',
`image` varchar(200) DEFAULT NULL COMMENT '商品图片',
`images` varchar(2000) DEFAULT NULL COMMENT '商品图片列表',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`spu_id` varchar(60) DEFAULT NULL COMMENT 'SPUID',
`category_id` int(10) DEFAULT NULL COMMENT '类目ID',
`category_name` varchar(200) DEFAULT NULL COMMENT '类目名称',
`brand_id` int(11) DEFAULT NULL COMMENT '品牌id',
`brand_name` varchar(100) DEFAULT NULL COMMENT '品牌名称',
`sku_attribute` varchar(200) DEFAULT NULL COMMENT '规格',
`status` int(1) DEFAULT '1' COMMENT '商品状态 1-正常,2-下架,3-删除',
PRIMARY KEY (`id`),
KEY `cid` (`category_id`),
KEY `status` (`status`),
KEY `updated` (`update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品表';
复制代码
1.2.1商品发布流程中所需要的表
1)分类
发布商品前,需要先选择发布商品所属分类,分类严格定义为3级分类。
分类表:
CREATE TABLE `category` (
`id` int(20) NOT NULL AUTO_INCREMENT COMMENT '分类ID',
`name` varchar(50) DEFAULT NULL COMMENT '分类名称',
`sort` int(11) DEFAULT NULL COMMENT '排序',
`parent_id` int(20) DEFAULT NULL COMMENT '上级ID',
PRIMARY KEY (`id`),
KEY `parent_id` (`parent_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11182 DEFAULT CHARSET=utf8 COMMENT='商品类目';
复制代码
2)选在品牌
分类选择完成后,需要加载品牌,品牌加载并非一次性加载完成,而是根据选择的分类进行加载。
分类品牌关系表:
CREATE TABLE `category_brand` (
`category_id` int(11) NOT NULL COMMENT '分类ID',
`brand_id` int(11) NOT NULL COMMENT '品牌ID',
PRIMARY KEY (`brand_id`,`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
复制代码
品牌表:
CREATE TABLE `brand` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '品牌id',
`name` varchar(100) NOT NULL COMMENT '品牌名称',
`image` varchar(1000) DEFAULT '' COMMENT '品牌图片地址',
`initial` varchar(1) DEFAULT '' COMMENT '品牌的首字母',
`sort` int(11) DEFAULT NULL COMMENT '排序',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='品牌表';
复制代码
3)属性加载
当选择分类后,加载分类对应的属性。
分类属性表:
CREATE TABLE `category_attr` (
`category_id` int(11) NOT NULL,
`attr_id` int(11) NOT NULL COMMENT '属性分类表',
PRIMARY KEY (`category_id`,`attr_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
复制代码
属性表:
CREATE TABLE `sku_attribute` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(50) DEFAULT NULL COMMENT '属性名称',
`options` varchar(2000) DEFAULT NULL COMMENT '属性选项',
`sort` int(11) DEFAULT NULL COMMENT '排序',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
复制代码
总结:本篇主要讲了一下SPU和SKU的关系,以及SPU和SKU表结构的设计,还有商品发布流程中所需要的表。