当前位置:网站首页>电商数据模型设计
电商数据模型设计
2022-07-28 21:58:00 【Alexon Xu】
电商数据模型主要涉及到商品,订单,物流,库存等,整体的设计模型如下:
上述模型可以继续按照功能分为两个库:商品库和订单库
商品库主要是管理商品SPU,SKU,库存等
订单库主要管理订单,物流等信息
完整的SQL脚本如下:
DROP TABLE IF EXISTS `order_t`;
CREATE TABLE `order_t`
(
`order_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT 'order_id主键',
`order_no` varchar(32) DEFAULT NULL COMMENT '订单编号',
`user_id` bigint(10) NOT NULL COMMENT '用户ID',
`order_amount` decimal(16, 2) NOT NULL COMMENT '订单金额',
`delivery_amount` decimal(16, 2) DEFAULT 0 COMMENT '运费',
`total_amount` decimal(16, 2) NOT NULL COMMENT '汇总金额',
`receiver_id` bigint(10) NOT NULL COMMENT '收货地址ID',
`status` tinyint(4) DEFAULT 1 COMMENT '状态,1:已提交,2:已付款,3:待发货,4:已发货,5:已收货,6:已完成',
`deleted` tinyint(4) DEFAULT 0 COMMENT '删除标志,0:未删除,1:已删除',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`order_id`),
KEY `idx_useId` (`user_id`),
KEY `idx_orderNo` (`order_no`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8 COMMENT ='订单表';
DROP TABLE IF EXISTS `receiver_info_t`;
CREATE TABLE `receiver_info_t`
(
`receiver_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT 'receiver_id主键',
`user_id` bigint(10) NOT NULL COMMENT '用户ID',
`receiver_name` varchar(64) DEFAULT NULL COMMENT '收件人姓名',
`receiver_telephone` varchar(32) NOT NULL COMMENT '收件人电话',
`receiver_address` varchar(256) NOT NULL COMMENT '收件人地址',
`default_flag` tinyint(4) DEFAULT 0 COMMENT '是否默认地址,0:否,1:是',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`receiver_id`),
UNIQUE KEY `uk_useId` (`user_id`, `receiver_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8 COMMENT ='用户收货地址表';
DROP TABLE IF EXISTS `category_t`;
CREATE TABLE `category_t`
(
`category_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键(自增ID)',
`code` varchar(64) NOT NULL COMMENT '编码',
`name` varchar(128) NOT NULL COMMENT '名称',
`parent_id` int(10) NOT NULL DEFAULT '0' COMMENT '父级ID,默认为0',
`sort` int(8) DEFAULT '0' COMMENT '分类排序',
`status` tinyint(4) DEFAULT '0' COMMENT '状态(0:在用,1:停用)',
`remarks` varchar(255) DEFAULT NULL COMMENT '分类备注',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`category_id`),
UNIQUE KEY `unique_code` (`code`),
UNIQUE KEY `unique_name` (`name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8 COMMENT ='类别表';
DROP TABLE IF EXISTS `brand_t`;
CREATE TABLE `brand_t`
(
`brand_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '品牌id',
`name` varchar(64) NOT NULL COMMENT '品牌名称',
`image` varchar(256) NULL DEFAULT '' COMMENT '品牌图片地址',
`initial` varchar(1) DEFAULT '' COMMENT '品牌的首字母',
`sort` int(8) NULL DEFAULT NULL COMMENT '排序',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`brand_id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8
COMMENT ='品牌类别关联表';
DROP TABLE IF EXISTS `category_brand_rel_t`;
CREATE TABLE `category_brand_rel_t`
(
`category_id` bigint(10) NOT NULL COMMENT '分类ID',
`brand_id` bigint(10) NOT NULL COMMENT '品牌ID',
PRIMARY KEY (`brand_id`, `category_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8 COMMENT ='品牌类别关联表';
DROP TABLE IF EXISTS `commodity_spu_t`;
CREATE TABLE `commodity_spu_t`
(
`spu_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT 'id主键',
`category_id` int(10) NOT NULL COMMENT '商品分类ID',
`brand_id` bigint(10) DEFAULT NULL COMMENT '品牌ID',
`code` varchar(32) DEFAULT NULL COMMENT '商品编码',
`name` varchar(128) DEFAULT NULL COMMENT '商品名称',
`description` varchar(512) DEFAULT NULL COMMENT '商品描述',
`marketable` tinyint(4) DEFAULT 0 COMMENT '上架状态,0:未上架,2:已上架',
`approve_status` tinyint(4) DEFAULT 0 COMMENT '审批状态,0:未审核,1:已审核,2:审核不通过',
`deleted` tinyint(4) DEFAULT 0 COMMENT '删除标志,0:未删除,1:已删除',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`spu_id`),
UNIQUE KEY `uk_code` (`code`),
KEY `idx_name` (`name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8 COMMENT ='商品SPU表';
DROP TABLE IF EXISTS `commodity_spu_img_t`;
CREATE TABLE `commodity_spu_img_t`
(
`id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`spu_id` bigint(10) DEFAULT NULL COMMENT '商品SPU id',
`image` varchar(256) DEFAULT NULL COMMENT '图片路径',
`sort` int(8) NULL DEFAULT NULL COMMENT '排序',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8
COMMENT = '商品SPU图片集合';
DROP TABLE IF EXISTS `commodity_sku_t`;
CREATE TABLE `commodity_sku_t`
(
`sku_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`spu_id` bigint(10) NULL DEFAULT NULL COMMENT '商品SPU id',
`name` varchar(256) DEFAULT NULL COMMENT 'SKU名称',
`code` varchar(35) DEFAULT NULL COMMENT 'SKU编号',
`description` varchar(512) DEFAULT NULL COMMENT '规格描述',
`sale_volume` int(10) DEFAULT NULL COMMENT '销量',
`price` decimal(16, 2) NULL DEFAULT NULL COMMENT '价格',
`marketable` tinyint(4) DEFAULT 0 COMMENT '上架状态,0:未上架,2:已上架',
`deleted` tinyint(4) DEFAULT 0 COMMENT '删除标志,0:未删除,1:已删除',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`sku_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8
COMMENT = '商品规格';
DROP TABLE IF EXISTS `attribute_t`;
CREATE TABLE `attribute_t`
(
`attr_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(64) DEFAULT NULL COMMENT '名称',
`value` varchar(256) DEFAULT NULL COMMENT '属性值',
`status` tinyint(4) DEFAULT 0 COMMENT '状态, 0:生效,1:失效',
`type` tinyint(4) DEFAULT 1 COMMENT '属性类型 1 规格属性 2 销售属性',
`category_id` bigint(10) DEFAULT NULL COMMENT '分类id',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`attr_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8
COMMENT = '属性表';
DROP TABLE IF EXISTS `commodity_sku_attr_rel_t`;
CREATE TABLE `commodity_sku_attr_rel_t`
(
`id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`sku_id` bigint(10) NULL DEFAULT NULL COMMENT '商品SKU ID',
`attr_id` bigint(10) NULL DEFAULT NULL COMMENT '属性id',
`sort` int(8) NULL DEFAULT NULL COMMENT '排序',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8
COMMENT = '商品规格SKU属性关联表';
DROP TABLE IF EXISTS `commodity_spu_attr_rel_t`;
CREATE TABLE `commodity_spu_attr_rel_t`
(
`id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`spu_id` bigint(10) NULL DEFAULT NULL COMMENT '商品SPU ID',
`attr_id` bigint(10) NULL DEFAULT NULL COMMENT '属性id',
`sort` int(8) NULL DEFAULT NULL COMMENT '排序',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8
COMMENT = '商品SPU属性关联表';
DROP TABLE IF EXISTS `commodity_sku_img_t`;
CREATE TABLE `commodity_sku_img_t`
(
`id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`sku_id` bigint(10) DEFAULT NULL COMMENT '商品SKU id',
`image` varchar(256) DEFAULT NULL COMMENT '图片路径',
`sort` int(8) NULL DEFAULT NULL COMMENT '排序',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8
COMMENT = '商品SKU图片集合';
DROP TABLE IF EXISTS `commodity_stock_t`;
CREATE TABLE `commodity_stock_t`
(
`id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`sku_id` bigint(10) NOT NULL COMMENT '商品SKU id',
`quantity` int(10) NULL DEFAULT 0 COMMENT '库存数量',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY uk_skuId (`sku_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8
COMMENT = '商品规格SKU库存';
DROP TABLE IF EXISTS `order_commodity_rel_t`;
CREATE TABLE `order_commodity_rel_t`
(
`id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT 'ID主键',
`order_id` bigint(10) DEFAULT NULL COMMENT '订单ID',
`sku_id` bigint(10) NOT NULL COMMENT '商品SKU id',
`quantity` bigint(10) DEFAULT 0 COMMENT '购买数量',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_orderSkuId` (`order_id`, `sku_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8 COMMENT ='订单商品关联表';
DROP TABLE IF EXISTS `order_delivery_rel_t`;
CREATE TABLE `order_delivery_rel_t`
(
`id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT 'ID主键',
`order_id` bigint(10) DEFAULT NULL COMMENT '订单ID',
`delivery_id` bigint(10) NOT NULL COMMENT '物流ID',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_orderDeliveryId` (`order_id`, `delivery_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8 COMMENT ='订单物流关联表';
DROP TABLE IF EXISTS `delivery_t`;
CREATE TABLE `delivery_t`
(
`delivery_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '物流ID',
`delivery_type` tinyint(4) NOT NULL COMMENT '快递类型,1:顺丰,2:圆通,3:中通,4:韵达,5:优速,6:极兔,7:EMS',
`delivery_no` varchar(32) NOT NULL COMMENT '快递单号',
`status` tinyint(4) DEFAULT 0 COMMENT '快递状态,0:已揽件,1:运输中,2:投递中,3:已投递',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`delivery_id`),
UNIQUE KEY `uk_deliveryNo` (`delivery_no`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8 COMMENT ='快递信息表';
DROP TABLE IF EXISTS `delivery_detail_t`;
CREATE TABLE `delivery_detail_t`
(
`delivery_detail_id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '物流详细信息表',
`delivery_id` bigint(10) DEFAULT NULL COMMENT '物流ID',
`position` varchar(256) DEFAULT NULL COMMENT '当前位置',
`time` bigint(13) DEFAULT NULL COMMENT '时间',
`create_by` bigint(10) DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_update_by` bigint(10) DEFAULT NULL COMMENT '修改人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`delivery_detail_id`),
KEY `idx_deliveryId` (`delivery_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1000
DEFAULT CHARSET = utf8 COMMENT ='快递流转详细信息表';
边栏推荐
- [self] - question brushing - dynamic programming
- (22) two permutation (DP), package delivery (greedy)
- 苹果官网正在更新维护 Apple Store,国行 iPhone 13 / Pro 等产品将最高优惠 600 元
- 2022年G2电站锅炉司炉考试题库模拟考试平台操作
- 机器学习问题笔记
- How to open a profitable gym? I tell you from one year's experience that don't fall in love
- Neglected smart TV applet field
- MySQL introduction
- 金仓数据库 KingbaseES V8.3至V8.6迁移最佳实践(2. KingbaseES V8.3和 V8.6 兼容性)
- 【自】-刷题-字符串
猜你喜欢

Manufacturing steps of interactive slide screen in exhibition hall

Blocking queue

Arduino uno driver universe 1.8 'TFT SPI screen example demonstration (including data package)

酪氨酸脱羧酶丨Worthington粪链球菌酪氨酸脱羧酶的特征

【自】-刷题-字符串

Pin mapping relationship of stm32f103c series single chip microcomputer under Arduino framework

如何将一个mongodb中集合的索引 添加到另一个mongodb中集合中

2022年R2移动式压力容器充装考题模拟考试平台操作

电脑不知卸载什么,打不开计算器无法编辑截图功能打不开txt文件等等解决方案之一

2022起重机械指挥考试题模拟考试平台操作
随机推荐
基因组 DNA 分离丨Worthington核糖核酸酶A
npm更换最新淘宝镜像
Crud of MySQL
MySQL introduction
Pagoda phpMyAdmin unauthorized access vulnerability
2022T电梯修理考试试题及模拟考试
Merkle tree
新一代超安全蜂窝电池 思皓爱跑上市13.99万元起售
Rhce第一天
金仓数据库 KingbaseES 与 Oracle 的兼容性说明(4. SQL)
【自】-刷题-BFS
事件抽取文献整理(2018)
商家对积分体系运营的两个误解
mongodb索引添加、查看、导出、删除
Worthington核糖核酸测定详细攻略
Trivy [3] custom scanning strategy
【数据挖掘工程师-笔试】2022年大华股份
Worthington丨Worthington胰蛋白酶抑制剂说明书
Xss.haozi.me range details
field injection is not recommended 的解决办法