当前位置:网站首页>电商数据模型设计
电商数据模型设计
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 ='快递流转详细信息表';
边栏推荐
猜你喜欢
随机推荐
基因组 DNA 分离丨Worthington核糖核酸酶A
The classic dual stack implementation queue, pay attention to the modification of the judgment conditions of traversing the stack.
Optimization and implementation of custom MVC
2022G3锅炉水处理考试模拟100题模拟考试平台操作
2022 simulated examination platform operation of hoisting machinery command examination questions
PHP 海报二维码合成
2022年R2移动式压力容器充装考题模拟考试平台操作
[self] - brush questions BFS
Compatibility description between kingbasees and Oracle (3. Common functions)
电脑不知卸载什么,打不开计算器无法编辑截图功能打不开txt文件等等解决方案之一
从XSS Payload学习浏览器解码
解决线程安全问题&&单例模式
深度剖析集成学习GBDT
商家对积分体系运营的两个误解
Worthington核糖核酸酶B历史和化学性质说明
1314_ Serial port technology_ Basic information of RS232 communication
mongodb索引添加、查看、导出、删除
宝塔 phpmyadmin未授权访问漏洞
【自】-刷题-峰值
Class, leetcode919 -- complete binary tree inserter