用户模块


核心业务表
用户基础信息表
CREATE TABLE `user_userinfo` (
`userid` varchar(6) NOT NULL DEFAULT '-' COMMENT '用户 ID',
`username` varchar(20) NOT NULL DEFAULT '-' COMMENT '用户名称',
`userpassword` varchar(100) NOT NULL DEFAULT '-' COMMENT '密码',
`sex` int(11) NOT NULL DEFAULT '0' COMMENT '性别',
`usermoney` int(11) NOT NULL DEFAULT '0' COMMENT '账号余额',
`frozenmoney` int(11) NOT NULL DEFAULT '0' COMMENT '近一个月的花费的总的金额',
`addressid` varchar(20) NOT NULL DEFAULT '-' COMMENT '用户地址 ID,0 表示没有获取地址',
`regtime` varchar(20) NOT NULL DEFAULT '-' COMMENT '注册时间',
`lastlogin` varchar(20) NOT NULL DEFAULT '-' COMMENT '最后登录时间',
`lasttime` date NOT NULL COMMENT '系统下载最后时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
商品模块
分类管理

品牌管理
(1)品牌创建
(2)品牌管理
属性管理
一个商品所拥有的所有性质,都是这个商品的属性。
属性从结构上可拆分成 3 块,分别是:属性组>属性>属性值
1:属性组:将大量属性分类,便于管理,如手机的“外观属性”、“性能属性”等 ;
2:属性:即属性名,指具体的属性,如颜色、版本、运行内存;
3:属性值:指属性的具体值,如颜色属性的属性值有:红色、黄色、绿;
商品管理
SPU(Standard Product Unit)——标准化产品单元。
是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个 SPU。
SKU(stock keeping unit)——SKU 即库存进出计量的单位,可以是以件、盒、托盘等为单位;SKU 是一个可以售卖的商品。
SPU 定位一个产品,SKU 定位为商品
例如手机这个类目下,iPhone 13
就是一个 SPU,iPhone 13 256G 黑色就是一个 SKU(京东的 SKU 还会加上公开版等属性)一般情况下,基础属性可以看成是 spu 的属性,如手机的屏幕尺寸、CPU型号、像素等基础属性;销售属性以及仓储物流属性存储在 sku 上,如颜色、版本等销售属性。
创建商品的流程

核心业务表
SKU 信息表
CREATE TABLE `product_sku` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'skuId',
`spu_id` bigint(20) DEFAULT NULL COMMENT 'spuId',
`name` varchar(255) DEFAULT NULL COMMENT 'sku 名称',
`catagory_id` bigint(20) DEFAULT NULL COMMENT '所属分类 id',
`brand_id` bigint(20) DEFAULT NULL COMMENT '品牌 id',
`default_image` varchar(255) DEFAULT NULL COMMENT '默认图片',
`title` varchar(255) DEFAULT NULL COMMENT '标题',
`subtitle` varchar(2000) DEFAULT NULL COMMENT '副标题',
`price` decimal(18,4) DEFAULT NULL COMMENT '价格',
`weight` int(20) DEFAULT NULL COMMENT '重量(克)',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='sku 信息';
SKU 属性表
CREATE TABLE `product_sku_attr_value` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sku_id` bigint(20) DEFAULT NULL COMMENT 'sku_id',
`attr_id` bigint(20) DEFAULT NULL COMMENT 'attr_id',
`attr_name` varchar(200) DEFAULT NULL COMMENT '销售属性名',
`attr_value` varchar(200) DEFAULT NULL COMMENT '销售属性值',
`sort` int(11) DEFAULT NULL COMMENT '顺序',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COMMENT='sku 销售属性&值';
SPU 信息表
CREATE TABLE `product_spu` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '商品 id',
`name` varchar(200) DEFAULT NULL COMMENT '商品名称',
`category_id` bigint(20) DEFAULT NULL COMMENT '所属分类 id',
`brand_id` bigint(20) DEFAULT NULL COMMENT '品牌 id',
`publish_status` tinyint(4) DEFAULT NULL COMMENT '上架状态[0 - 下架,1 - 上架]',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COMMENT='spu 信息';
SPU 属性表
CREATE TABLE `product_spu_attr_value` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`spu_id` bigint(20) DEFAULT NULL COMMENT '商品 id',
`attr_id` bigint(20) DEFAULT NULL COMMENT '属性 id',
`attr_name` varchar(200) DEFAULT NULL COMMENT '属性名',
`attr_value` varchar(200) DEFAULT NULL COMMENT '属性值',
`sort` int(11) DEFAULT NULL COMMENT '顺序',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT='spu 属性值';
商品类别表
CREATE TABLE `product_category` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分类 id',
`name` char(50) DEFAULT NULL COMMENT '分类名称',
`parent_id` bigint(20) DEFAULT NULL COMMENT '父分类 id',
`status` tinyint(4) DEFAULT NULL COMMENT '是否显示[0-不显示,1 显示]',
`sort` int(11) DEFAULT NULL COMMENT '排序',
`icon` char(255) DEFAULT NULL COMMENT '图标地址',
`unit` char(50) DEFAULT NULL COMMENT '计量单位',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1433 DEFAULT CHARSET=utf8mb4 COMMENT='商品三级分类';
商品品牌表
CREATE TABLE `product_brand` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '品牌 id',
`name` char(50) DEFAULT NULL COMMENT '品牌名',
`logo` varchar(2000) DEFAULT NULL COMMENT '品牌 logo',
`status` tinyint(4) DEFAULT NULL COMMENT '显示状态[0-不显示;1-显示]',
`first_letter` char(1) DEFAULT NULL COMMENT '检索首字母',
`sort` int(11) DEFAULT NULL COMMENT '排序',
`remark` longtext COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='品牌';
商家模块
商家入驻流程

商家退店流程

核心业务表
店铺信息表
CREATE TABLE `shop_base_info` (
`shop_id` varchar(20) NOT NULL DEFAULT '-' COMMENT '店铺 ID',
`shop_name` varchar(20) NOT NULL DEFAULT '-' COMMENT '店铺名称',
`shop_status` int(11) NOT NULL DEFAULT '0' COMMENT '营业状态(0 在线营业 1 暂时歇业 2 停业)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='店铺表';
交易模块
交易业务流程(不考虑退款的情况)



提交订单流程


支付订单流程
当用户把订单提交后此时后台会有两步操作:
1)拆单
由购物车进入提交订单页面时可能有多商家多商品的情况,一旦提交了订单就会涉及到拆单(不管是否成功支付),一般来说最简单的是按商家拆,拆完后分别流转至相应的商家后台,用户在客户端的订单列表也会看到多个子订单;如果业务场景要求的话可以再按仓库等维度拆。
2)生成账单
生成账单的目的是为了记录该笔母订单的金额,如商品金额、抵扣总金额、各商品分别抵扣金额、用户需支付金额等,用户将要支付的是母订单的账单,当该笔账单已完成,则各子订单状态跳转为待发货;


退货退款流程

核心业务表
订单表
CREATE TABLE `trade_order` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`user_id` bigint(20) DEFAULT NULL COMMENT 'member_id',
`order_sn` char(32) DEFAULT NULL COMMENT '订单号',
`coupon_id` bigint(20) DEFAULT NULL COMMENT '使用的优惠券',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`username` varchar(200) DEFAULT NULL COMMENT '用户名',
`total_amount` decimal(18,4) DEFAULT NULL COMMENT '订单总额',
`pay_amount` decimal(18,4) DEFAULT NULL COMMENT '应付总额',
`freight_amount` decimal(18,4) DEFAULT NULL COMMENT '运费金额',
`promotion_amount` decimal(18,4) DEFAULT NULL COMMENT '促销优化金额(促销价、满减、阶梯价)',
`integration_amount` decimal(18,4) DEFAULT NULL COMMENT '积分抵扣金额',
`coupon_amount` decimal(18,4) DEFAULT NULL COMMENT '优惠券抵扣金额',
`discount_amount` decimal(18,4) DEFAULT NULL COMMENT '后台调整订单使用的折扣金额',
`pay_type` tinyint(4) DEFAULT NULL COMMENT '支付方式【1->支付宝;2->微信;3->银联; 4->货到付款;】',
`source_type` tinyint(4) DEFAULT NULL COMMENT '订单来源[0->PC 订单;1->app 订单]',
`status` tinyint(4) DEFAULT NULL COMMENT '订单状态【0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5-> 无效订单】',
`delivery_company` varchar(64) DEFAULT NULL COMMENT '物流公司(配送方式)',
`delivery_sn` varchar(64) DEFAULT NULL COMMENT '物流单号',
`auto_confirm_day` int(11) DEFAULT NULL COMMENT '自动确认时间(天)',
`integration` int(11) DEFAULT NULL COMMENT '可以获得的积分',
`growth` int(11) DEFAULT NULL COMMENT '可以获得的成长值',
`bill_type` tinyint(4) DEFAULT NULL COMMENT '发票类型[0->不开发票;1->电子发票;2->纸质发票]',
`bill_header` varchar(255) DEFAULT NULL COMMENT '发票抬头',
`bill_content` varchar(255) DEFAULT NULL COMMENT '发票内容',
`bill_receiver_phone` varchar(32) DEFAULT NULL COMMENT '收票人电话',
`bill_receiver_email` varchar(64) DEFAULT NULL COMMENT '收票人邮箱',
`receiver_name` varchar(100) DEFAULT NULL COMMENT '收货人姓名',
`receiver_phone` varchar(32) DEFAULT NULL COMMENT '收货人电话',
`receiver_post_code` varchar(32) DEFAULT NULL COMMENT '收货人邮编',
`receiver_province` varchar(32) DEFAULT NULL COMMENT '省份/直辖市',
`receiver_city` varchar(32) DEFAULT NULL COMMENT '城市',
`receiver_region` varchar(32) DEFAULT NULL COMMENT '区',
`receiver_address` varchar(200) DEFAULT NULL COMMENT '详细地址',
`confirm_status` tinyint(4) DEFAULT NULL COMMENT '确认收货状态[0->未确认;1->已确认]',
`delete_status` tinyint(4) DEFAULT NULL COMMENT '删除状态【0->未删除;1->已删除】',
`use_integration` int(11) DEFAULT NULL COMMENT '下单时使用的积分',
`payment_time` datetime DEFAULT NULL COMMENT '支付时间',
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
`receive_time` datetime DEFAULT NULL COMMENT '确认收货时间',
`comment_time` datetime DEFAULT NULL COMMENT '评价时间',
`modify_time` datetime DEFAULT NULL COMMENT '修改时间',
`remark` varchar(500) DEFAULT NULL COMMENT '订单备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=30836 DEFAULT CHARSET=utf8 COMMENT='订单';
订单项表
CREATE TABLE `trade_order_item` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`order_id` bigint(20) DEFAULT NULL COMMENT 'order_id',
`order_sn` char(32) DEFAULT NULL COMMENT 'order_sn',
`spu_id` bigint(20) DEFAULT NULL COMMENT 'spu_id',
`spu_name` varchar(255) DEFAULT NULL COMMENT 'spu_name',
`spu_pic` varchar(500) DEFAULT NULL COMMENT 'spu_pic',
`spu_brand` varchar(200) DEFAULT NULL COMMENT '品牌',
`category_id` bigint(20) DEFAULT NULL COMMENT '商品分类 id',
`sku_id` bigint(20) DEFAULT NULL COMMENT '商品 sku 编号',
`sku_name` varchar(255) DEFAULT NULL COMMENT '商品 sku 名字',
`sku_pic` varchar(500) DEFAULT NULL COMMENT '商品 sku 图片',
`sku_price` decimal(18,4) DEFAULT NULL COMMENT '商品 sku 价格',
`sku_quantity` int(11) DEFAULT NULL COMMENT '商品购买的数量',
`sku_attrs_vals` varchar(500) DEFAULT NULL COMMENT '商品销售属性组合(JSON)',
`promotion_amount` decimal(18,4) DEFAULT NULL COMMENT '商品促销分解金额',
`coupon_amount` decimal(18,4) DEFAULT NULL COMMENT '优惠券优惠分解金额',
`integration_amount` decimal(18,4) DEFAULT NULL COMMENT '积分优惠分解金额',
`real_amount` decimal(18,4) DEFAULT NULL COMMENT '该商品经过优惠后的分解金额',
`gift_integration` int(11) DEFAULT NULL COMMENT '赠送积分',
`gift_growth` int(11) DEFAULT NULL COMMENT '赠送成长值',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单项信息';
支付信息表
CREATE TABLE `trade_payment_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`order_sn` char(32) DEFAULT NULL COMMENT '订单号(对外业务号)',
`order_id` bigint(20) DEFAULT NULL COMMENT '订单 id',
`trade_no` varchar(50) DEFAULT NULL COMMENT '交易流水号',
`total_amount` decimal(18,4) DEFAULT NULL COMMENT '支付总金额',
`subject` varchar(200) DEFAULT NULL COMMENT '交易内容',
`payment_status` varchar(20) DEFAULT NULL COMMENT '支付状态',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`confirm_time` datetime DEFAULT NULL COMMENT '确认时间',
`callback_content` varchar(4000) DEFAULT NULL COMMENT '回调内容',
`callback_time` datetime DEFAULT NULL COMMENT '回调时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='支付信息表';
退款信息表
CREATE TABLE `trade_refund_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`order_return_id` bigint(20) DEFAULT NULL COMMENT '退款的订单',
`refund` decimal(18,4) DEFAULT NULL COMMENT '退款金额',
`refund_sn` varchar(64) DEFAULT NULL COMMENT '退款交易流水号',
`refund_status` tinyint(1) DEFAULT NULL COMMENT '退款状态',
`refund_channel` tinyint(4) DEFAULT NULL COMMENT '退款渠道[1-支付宝,2-微信,3-银联,4-汇款]',
`refund_content` varchar(5000) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='退款信息';
营销模块
促销活动的流程主要分成五个部分

活动信息录入

核心业务表
优惠券表
CREATE TABLE `market_coupon` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`coupon_type` tinyint(1) DEFAULT NULL COMMENT '优惠卷类型[0->全场赠券;1->会员赠券;2->购物赠券;3->注册赠
券]',
`coupon_img` varchar(2000) DEFAULT NULL COMMENT '优惠券图片',
`coupon_name` varchar(100) DEFAULT NULL COMMENT '优惠卷名字',
`num` int(11) DEFAULT NULL COMMENT '数量',
`amount` decimal(18,4) DEFAULT NULL COMMENT '金额',
`per_limit` int(11) DEFAULT NULL COMMENT '每人限领张数',
`min_point` decimal(18,4) DEFAULT NULL COMMENT '使用门槛',
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
`end_time` datetime DEFAULT NULL COMMENT '结束时间',
`use_type` tinyint(1) DEFAULT NULL COMMENT '使用类型[0->全场通用;1->指定分类;2->指定商品]',
`note` varchar(200) DEFAULT NULL COMMENT '备注',
`publish_count` int(11) DEFAULT NULL COMMENT '发行数量',
`use_count` int(11) DEFAULT NULL COMMENT '已使用数量',
`receive_count` int(11) DEFAULT NULL COMMENT '领取数量',
`enable_start_time` datetime DEFAULT NULL COMMENT '可以领取的开始日期',
`enable_end_time` datetime DEFAULT NULL COMMENT '可以领取的结束日期',
`code` varchar(64) DEFAULT NULL COMMENT '优惠码',
`member_level` tinyint(1) DEFAULT NULL COMMENT '可以领取的会员等级[0->不限等级,其他-对应等级]',
`publish` tinyint(1) DEFAULT NULL COMMENT '发布状态[0-未发布,1-已发布]',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8 COMMENT='优惠券信息';
优惠券与产品关系表
CREATE TABLE `market_coupon_spu` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`coupon_id` bigint(20) DEFAULT NULL COMMENT '优惠券 id',
`spu_id` bigint(20) DEFAULT NULL COMMENT 'spu_id',
`spu_name` varchar(255) DEFAULT NULL COMMENT 'spu_name',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='优惠券与产品关联';