当前位置:网站首页>电商数据模型设计
电商数据模型设计
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 ='快递流转详细信息表';
边栏推荐
- Plato Farm有望通过Elephant Swap,进一步向外拓展生态
- The classic dual stack implementation queue, pay attention to the modification of the judgment conditions of traversing the stack.
- Rhce第二天
- Intel data center GPU is officially shipped to provide strong computing power with openness and flexibility
- 如何将一个mongodb中集合的索引 添加到另一个mongodb中集合中
- 金仓数据库 KingbaseES 与 Oracle 的兼容性说明(4. SQL)
- 解决线程安全问题&&单例模式
- 零视科技 H5S视频平台 GetUserInfo 信息泄漏漏洞 CNVD-2020-67113
- AUTOCAD——Excel表格导入CAD、CAD合并两兄弟
- How powerful can top "hackers" be? Internet access without signal, expert: high-end operation!
猜你喜欢
随机推荐
剑指 Offer 55 - I. 二叉树的深度
深度剖析集成学习Xgboost
金仓数据库 KingbaseES 与 Oracle 的兼容性说明(5. PL/SQL)
类中多函数填写,LeetCode919——完全二叉树插入器
【详细超简单】如何使用WebSocket链接
Class, leetcode919 -- complete binary tree inserter
Combination of smart TV and applet
苹果官网正在更新维护 Apple Store,国行 iPhone 13 / Pro 等产品将最高优惠 600 元
2022G3锅炉水处理考试模拟100题模拟考试平台操作
[self] - question brushing - dynamic programming
基因组 DNA 分离丨Worthington核糖核酸酶A
金仓数据库 KingbaseES与Oracle的兼容性说明(2. 数据类型)
[self] - brush questions array
Achieve high throughput through Wi Fi 7 - insight into the next generation of Wi Fi physical layer
(22) two permutation (DP), package delivery (greedy)
2022t elevator repair examination questions and simulation examination
你学过的每样东西,都会在你一生中的某个时刻派上用场(转)
阻塞式队列
Hyperparametric optimization (grid search and Bayesian Optimization)
2022 welder (Junior) work license questions and answers
![[self] - brush questions array](/img/a9/d12c41183df6961b2e9dd7cb49dfec.png)








