WMS系统改造一

背景

原有的WMS系统已经使用了多年,虽然功能和流程完善。但是面对市场的多变,还是应付不过来。原来的系统架构算是一个大的集合,有servlet+JSP +自研ORM框架 、springMVC+JPA/mybaties,SpringBoot + theamleaf,springBoot + vue;这样庞大复杂的系统架构运行10多年,修修补补的过日子,对开发和运维提高难度。现在正是疫情期间,在家就琢磨下 使用springCloud alibaba来进行下改造。

概念温习

wms的基础是商品的库存管理,那么我们就需要对数据库商品来进行下改造:首先来明确下基本的概念。一下概念网上理解加自己的理解。
SKU: stock keeping unit.以库存视角看商品(一箱可乐和一打可乐由于库存包装不同是不同的SKU).
SPU:standard product unit.体现商品标准变化。电商平台,一个基本产品对应多个卖家,展示方案:展示基本 产品—click—>>展示产品后所售商家的商品。
goods:商品,某个商家出售某个SPU,这个东西就叫商品。相对产品,数据层增加了价格,促销活动,运费等信息。
item: 代指宝贝,一个item代指多个商品(例如不同颜色的IPhone6S手机)。虽然前台展示灵活,但是底层数据混乱。
btw: 对于服装,同一产品可能有不同颜色不同尺码。那么SPU对应 ? 服装款式+颜色 | |服装款式+颜色+尺码。需要根据自身业务来处理。

SPU与SKU的关系

1.在商品模型设计中,要表述完一个完整的商品要包含SPU和SKU的属性。
2.SPU属性与商品库存无关,仅仅用来描述一个商品,可以称之为”描述属性“。
3.SKU属性与商品的库存和价格有关,每一种SKU属性都有自己的库存和价格,称之为“销售属性”。

常见SPU、item和SKU的属性关系

在这里插入图片描述

在这里插入图片描述

数据模型

这种设计是将SPU属性和SKU属性都挂在商品的类目下,这样的好处是方便商家维护商品属性,不用针对每一个商品都建一套自己的SPU和SKU,因为同一类目下的商品,SPU属性项,SKU属性项几乎是一样的,不一样的只是属性值。下面数据库模型中,sku_attribute表和spu_attribute表都只是维护属性的名称、排序和展示样式而已,最终决定一个商品属性的数据是goods_spu_attribute_valuegoods_sku_option_group表。

相关建表SQL:

  • good_catagroy 商品类目表
  • spu_attribute SPU属性表
  • sku_attribute SKU属性表
  • sku_option SKU可选项
  • goods_master 商品主表
  • goods_spu_attribute_value 商品SPU属性表
  • goods_sku 商品SKU表
  • goods_sku_option_group 商品SKU选项组合表

···
作者:lalala
链接:https://www.zhihu.com/question/19841574/answer/665411848
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;


– Table structure for goods


DROP TABLE IF EXISTS goods;
CREATE TABLE goods (
id varchar(32) NOT NULL COMMENT ‘商品ID’,
category_id varchar(32) DEFAULT NULL COMMENT ‘类目叶子节点ID’,
merchant_id varchar(32) DEFAULT NULL COMMENT ‘商户ID’,
brand_id varchar(32) DEFAULT NULL COMMENT ‘品牌ID’,
goods_code varchar(32) DEFAULT NULL COMMENT ‘商品编号’,
front_name varchar(255) DEFAULT NULL COMMENT ‘前端名称’,
back_name varchar(255) DEFAULT NULL COMMENT ‘后端名称’,
goods_type tinyint(1) DEFAULT NULL COMMENT ‘商品类型(0单品,1套餐)’,
goods_status tinyint(1) DEFAULT NULL COMMENT ‘状态(-1下架,0新建,1上架)’,
goods_desc varchar(512) DEFAULT NULL COMMENT ‘描述’,
cover_pic varchar(255) DEFAULT NULL COMMENT ‘封面图’,
key_word varchar(32) DEFAULT NULL COMMENT ‘关键字’,
create_user varchar(32) DEFAULT NULL COMMENT ‘创建人’,
create_date datetime(0) DEFAULT NULL COMMENT ‘创建时间’,
update_user varchar(32) DEFAULT NULL COMMENT ‘修改人’,
update_date datetime(0) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘修改时间’,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = ‘商品主表’ ROW_FORMAT = Dynamic;


– Table structure for goods_category


DROP TABLE IF EXISTS goods_category;
CREATE TABLE goods_category (
id varchar(32) NOT NULL COMMENT ‘类目ID’,
name varchar(32) DEFAULT NULL COMMENT ‘类目名称’,
level int(11) DEFAULT NULL COMMENT ‘类目级别(1一级,2二级,3三级,…)’,
has_child tinyint(1) DEFAULT NULL COMMENT ‘是否存在子节点(0否,1是)’,
parent_id varchar(32) DEFAULT NULL COMMENT ‘父节点ID’,
create_user varchar(32) DEFAULT NULL COMMENT ‘创建人’,
create_date datetime(0) DEFAULT NULL COMMENT ‘创建时间’,
update_user varchar(32) DEFAULT NULL COMMENT ‘修改人’,
update_date datetime(0) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘修改时间’,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = ‘商品类目表’ ROW_FORMAT = Dynamic;


– Table structure for goods_sku


DROP TABLE IF EXISTS goods_sku;
CREATE TABLE goods_sku (
id varchar(32) NOT NULL COMMENT ‘商品SKUID’,
goods_id varchar(32) DEFAULT NULL COMMENT ‘商品ID’,
sku_code varchar(32) DEFAULT NULL COMMENT ‘SKU码’,
cost_price int(11) DEFAULT NULL COMMENT ‘入库价(分)’,
sale_price int(11) DEFAULT NULL COMMENT ‘销售价(分)’,
disc_price int(11) DEFAULT NULL COMMENT ‘折扣价(分)’,
stock int(11) DEFAULT NULL COMMENT ‘库存’,
create_user varchar(32) DEFAULT NULL COMMENT ‘创建人’,
create_date datetime(0) DEFAULT NULL COMMENT ‘创建时间’,
update_user varchar(32) DEFAULT NULL COMMENT ‘修改人’,
update_date datetime(0) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘修改时间’,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = ‘商品SKU表’ ROW_FORMAT = Dynamic;


– Table structure for goods_sku_option_group


DROP TABLE IF EXISTS goods_sku_option_group;
CREATE TABLE goods_sku_option_group (
id varchar(32) NOT NULL COMMENT ‘ID’,
goods_id varchar(32) DEFAULT NULL COMMENT ‘商品ID’,
sku_id varchar(32) DEFAULT NULL COMMENT ‘SKUID’,
sku_option_id varchar(32) DEFAULT NULL COMMENT ‘SKU选项ID’,
create_user varchar(32) DEFAULT NULL COMMENT ‘创建人’,
create_date datetime(0) DEFAULT NULL COMMENT ‘创建时间’,
update_user varchar(32) DEFAULT NULL COMMENT ‘修改人’,
update_date datetime(0) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘修改时间’,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = ‘商品SKU选项组合表’ ROW_FORMAT = Dynamic;


– Table structure for goods_spu_attribute_value


DROP TABLE IF EXISTS goods_spu_attribute_value;
CREATE TABLE goods_spu_attribute_value (
id varchar(32) NOT NULL COMMENT ‘SPU属性值ID’,
goods_id varchar(32) DEFAULT NULL COMMENT ‘商品ID’,
spu_attribute_id varchar(32) DEFAULT NULL COMMENT ‘私有属性ID’,
spu_attribute_value varchar(512) DEFAULT NULL COMMENT ‘属性值’,
value_type tinyint(1) DEFAULT NULL COMMENT ‘属性值类型(0普通字符串,1时间戳格式,2时间格式字符串(yyyy-MM-dd HH:mm:ss),…)’,
value_desc varchar(255) DEFAULT NULL COMMENT ‘属性值说明’,
sort int(11) DEFAULT NULL COMMENT ‘排序(1最前)’,
create_user varchar(32) DEFAULT NULL COMMENT ‘创建人’,
create_date datetime(0) DEFAULT NULL COMMENT ‘创建时间’,
update_user varchar(32) DEFAULT NULL COMMENT ‘修改人’,
update_date datetime(0) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘修改时间’,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = ‘商品SPU属性值表’ ROW_FORMAT = Dynamic;


– Table structure for sku_attribute


DROP TABLE IF EXISTS sku_attribute;
CREATE TABLE sku_attribute (
id varchar(32) NOT NULL COMMENT ‘SKU属性ID’,
category_id varchar(32) DEFAULT NULL COMMENT ‘类目叶子节点ID’,
front_name varchar(32) DEFAULT NULL COMMENT ‘属性名称(前端)’,
back_name varchar(32) DEFAULT NULL COMMENT ‘属性名称(后端)’,
attr_desc varchar(512) DEFAULT NULL COMMENT ‘属性说明’,
sort int(11) DEFAULT NULL COMMENT ‘排序(1最前)’,
create_user varchar(32) DEFAULT NULL COMMENT ‘创建人’,
create_date datetime(0) DEFAULT NULL COMMENT ‘创建时间’,
update_user varchar(32) DEFAULT NULL COMMENT ‘修改人’,
update_date datetime(0) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘修改时间’,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = ‘SKU属性表’ ROW_FORMAT = Dynamic;


– Table structure for sku_option


DROP TABLE IF EXISTS sku_option;
CREATE TABLE sku_option (
id varchar(32) NOT NULL COMMENT ‘SKU可选项ID’,
sku_attribute_id varchar(32) DEFAULT NULL COMMENT ‘SKU属性ID’,
option_name varchar(32) DEFAULT NULL COMMENT ‘可选项名称’,
option_desc varchar(512) DEFAULT NULL COMMENT ‘可选项说明’,
sort int(11) DEFAULT NULL COMMENT ‘排序(1最前)’,
create_user varchar(32) DEFAULT NULL COMMENT ‘创建人’,
create_date datetime(0) DEFAULT NULL COMMENT ‘创建时间’,
update_user varchar(32) DEFAULT NULL COMMENT ‘修改人’,
update_date datetime(0) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘修改时间’,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = ‘SKU可选项表’ ROW_FORMAT = Dynamic;


– Table structure for spu_attribute


DROP TABLE IF EXISTS spu_attribute;
CREATE TABLE spu_attribute (
id varchar(32) NOT NULL COMMENT ‘SPU属性ID’,
category_id varchar(32) DEFAULT NULL COMMENT ‘类目叶子节点ID’,
front_name varchar(32) DEFAULT NULL COMMENT ‘属性名称(前端)’,
back_name varchar(32) DEFAULT NULL COMMENT ‘属性名称(后端)’,
input_style int(11) DEFAULT NULL COMMENT ‘属性值输入样式(0文本输入框,1时间控件,2下拉选项,…)’,
attr_desc varchar(512) DEFAULT NULL COMMENT ‘属性说明’,
sort int(11) DEFAULT NULL COMMENT ‘排序(1最前)’,
create_user varchar(32) DEFAULT NULL COMMENT ‘创建人’,
create_date datetime(0) DEFAULT NULL COMMENT ‘创建时间’,
update_user varchar(32) DEFAULT NULL COMMENT ‘修改人’,
update_date datetime(0) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘修改时间’,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = ‘SPU属性表’ ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;
···

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值