电商业务简介

电商业务流程

以用户的浏览足迹为例说明

用户点开电商首页开始浏览,通过分类查询或通过全文搜索寻找自己中意的商品 , 将商品添加到购物车后,对商品进行结算,这时候购物车的管理和商品订单信息的生成都会对业务数据库产生影响,会生成相应的订单数据和支付数据

订单正式生成之后,还会对订单进行跟踪处理,直到订单全部完成

电商的业务流程 : 用户前台浏览商品时的商品详情的管理,用户商品加入购物车进行支付时用户个人中心&支付服务的管理,用户支付完成后订单后台服务的管理

在这里插入图片描述

电商常识

SKU和SPU

SKU (Stock Keeping Unit)(库存量基本单位): 产品统一编号 , 每种产品均对应有唯一的SKU号 , 如 : 一台银色、128G内存的、支持联通网络的iPhoneX

SPU( Standard Product Unit ):是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息集合 , 如 : iPhoneX手机

SPU : 一类商品

同一SPU的商品可以共用 :

  • 商品图片
  • 海报
  • 销售属性

在这里插入图片描述

平台属性和销售属性

平台属性 :

在这里插入图片描述

销售属性 :

在这里插入图片描述

电商业务数据

电商系统表结构

中心 :

  • 订单表 :
  • 用户表 : 用户的详细信息
  • SKU商品表 : 商品的详细信息
  • 活动表
  • 优惠券表

延伸 :

  • 优惠券领用表
  • 支付流水表 : 该订单的支付详情
  • 活动订单表
  • 订单详情表 : 订单的商品数量
  • 订单状态表
  • 商品评论表
  • 编码字典表退单表
  • SPU商品表

电商业务表 :

在这里插入图片描述

后台管理系统 :

在这里插入图片描述

活动信息表(activity_info)

字段名 字段说明 类型
id 活动id bigint(20)
activity_name 活动名称 varchar(200)
activity_type 活动类型(1:满减,2:折扣) varchar(10)
activity_desc 活动描述 varchar(2000)
start_time 开始时间 datetime(0)
end_time 结束时间 datetime(0)
create_time 创建时间 datetime(0)

活动规则表(activity_rule)

字段名

字段名 字段说明 类型
id 编号 int(11)
activity_id 活动ID int(11)
activity_type 活动类型 varchar(20)
condition_amount 满减金额 decimal(16, 2)
condition_num 满减件数 bigint(20)
benefit_amount 优惠金额 decimal(16, 2)
benefit_discount 优惠折扣 decimal(10, 2)
benefit_level 优惠级别 bigint(20)

活动商品关联表(activity_sku)

字段名 字段说明 类型
id 编号 bigint(20)
activity_id 活动 id bigint(20)
sku_id sku_id bigint(20)
create_time 创建时间 datetime(0)

平台属性表(base_attr_info)

字段名 字段说明 类型
id 编号 bigint(20)
attr_name 属性名称 varchar(100)
category_id 分类id bigint(20)
category_level 分类层级 int(11)

平台属性值表(base_attr_value)

字段名 字段说明 类型
id 编号 bigint(20)
value_name 属性值名称 varchar(100)
attr_id 属性id bigint(20)

一级分类表(base_category1)

字段名 字段说明 类型
id 编号 bigint(20)
name 分类名称 varchar(10)

二级分类表(base_category2)

字段名 字段说明 类型
id 编号 bigint(20)
name 二级分类名称 varchar(200)
category1_id 一级分类编号 bigint(20)

三级分类表(base_category3)

字段名 字段说明 类型
id 编号 bigint(20)
name 三级分类名称 varchar(200)
category2_id 二级分类编号 bigint(20)

字典表(base_dic)

字段名 字段说明 类型
dic_code 编号 varchar(10)
dic_name 编码名称 varchar(100)
parent_code 父编号 varchar(10)
create_time 创建日期 datetime(0)
operate_time 修改日期 datetime(0)

省份表(base_province)

字段名 字段说明 类型
id id bigint(20)
name 省名称 varchar(20)
region_id 大区id varchar(20)
area_code 行政区位码 varchar(20)
iso_code 国际编码 varchar(20)
iso_3166_2 ISO3166编码 varchar(20)

地区表(base_region)

字段名 字段说明 类型
id 大区id varchar(20)
region_name 大区名称 varchar(20)

品牌表(base_trademark)

字段名 字段说明 类型
id 编号 bigint(20)
tm_name 属性值 varchar(100)
logo_url 品牌logo的图片路径 varchar(200)

购物车表(cart_info)

字段名 字段说明 类型
id 编号 bigint(20)
user_id 用户id varchar(200)
sku_id skuid bigint(20)
cart_price 放入购物车时价格 decimal(10,2)
sku_num 数量 int(11)
img_url 图片文件 varchar(200)
sku_name sku名称 (冗余) varchar(200)
is_checked int(1)
create_time 创建时间 datetime
operate_time 修改时间 datetime
is_ordered 是否已经下单 bigint(20)
order_time 下单时间 datetime
source_type 来源类型 varchar(20)
source_id 来源编号 bigint(20)

评价表(comment_info)

字段名 字段说明 类型
id 编号 bigint(20)
user_id 用户id bigint(20)
nick_name 用户昵称 varchar(20)
head_img varchar(200)
sku_id skuid bigint(20)
spu_id 商品id bigint(20)
order_id 订单编号 bigint(20)
appraise 评价 1 好评 2 中评 3 差评 varchar(10)
comment_txt 评价内容 varchar(2000)
create_time 创建时间 datetime
operate_time 修改时间 datetime

优惠券信息表(coupon_info)

字段名 字段说明 类型
id 购物券编号 bigint(20)
coupon_name 购物券名称 varchar(100)
coupon_type 购物券类型 1 现金券 2 折扣券 3 满减券 4 满件打折券 varchar(10)
condition_amount 满额数(3) decimal(10,2)
condition_num 满件数(4) bigint(20)
activity_id 活动编号 bigint(20)
benefit_amount 减金额(1 3) decimal(16,2)
benefit_discount 折扣(2 4) decimal(16,2)
create_time 创建时间 datetime
range_type 范围类型 1、商品(spuid) 2、品类(三级分类id) 3、品牌 varchar(10)
limit_num 最多领用次数 int(11)
taken_count 已领用次数 int(11)
start_time 可以领取的开始日期 datetime
end_time 可以领取的结束日期 datetime
operate_time 修改时间 datetime
expire_time 过期时间 datetime
range_desc 范围描述 varchar(500)

优惠券优惠范围表(coupon_range)

字段名 字段说明 类型
id 购物券编号 bigint(20)
coupon_id 优惠券id bigint(20)
range_type 范围类型 1、商品(spuid) 2、品类(三级分类id) 3、品牌 varchar(10)
range_id bigint(20)

优惠券领用表(coupon_use)

字段名 字段说明 类型
id 编号 bigint(20)
coupon_id 购物券ID bigint(20)
user_id 用户ID bigint(20)
order_id 订单ID bigint(20)
coupon_status 购物券状态(1:未使用 2:已使用) varchar(10)
get_time 获取时间 datetime
using_time 使用时间 datetime
used_time 支付时间 datetime
expire_time 过期时间 datetime

收藏表(favor_info)

字段名 字段说明 类型
id 编号 bigint(20)
user_id 用户名称 bigint(20)
sku_id skuid bigint(20)
spu_id 商品id bigint(20)
is_cancel 是否已取消 0 正常 1 已取消 varchar(1)
create_time 创建时间 datetime
cancel_time 修改时间 datetime

订单明细表(order_detail)

字段名 字段说明 类型
id 编号 bigint(20)
order_id 订单编号 bigint(20)
sku_id sku_id bigint(20)
sku_name sku名称(冗余) varchar(200)
img_url 图片名称(冗余) varchar(200)
order_price 购买价格(下单时sku价格) decimal(10,2)
sku_num 购买个数 bigint(20)
create_time 创建时间 datetime
source_type 来源类型 varchar(20)
source_id 来源编号 bigint(20)
split_total_amount 分摊总金额 decimal(16,2)
split_activity_amount 分摊活动减免金额 decimal(16,2)
split_coupon_amount 分摊优惠券减免金额 decimal(16,2)

订单明细活动关联表(order_detail_activity)

字段名 字段说明 类型
id 编号 bigint(20)
order_id 订单id bigint(20)
order_detail_id 订单明细id bigint(20)
activity_id 活动ID bigint(20)
activity_rule_id 活动规则 bigint(20)
sku_id skuID bigint(20)
create_time 获取时间 datetime

订单明细优惠券关联表(order_detail_coupon)

字段名 字段说明 类型
id 编号 bigint(20)
order_id 订单id bigint(20)
order_detail_id 订单明细id bigint(20)
coupon_id 购物券ID bigint(20)
coupon_use_id 购物券领用id bigint(20)
sku_id skuID bigint(20)
create_time 获取时间 datetime

订单表(order_info)

字段名 字段说明 类型
id 编号 bigint(20)
consignee 收货人 varchar(100)
consignee_tel 收件人电话 varchar(20)
total_amount 总金额
order_status 订单状态 varchar(20)
user_id 用户id bigint(20)
payment_way 付款方式 varchar(20)
delivery_address 送货地址 varchar(1000)
order_comment 订单备注 varchar(200)
out_trade_no 订单交易编号(第三方支付用) varchar(50)
trade_body 订单描述(第三方支付用) varchar(200)
create_time 创建时间 datetime
operate_time 操作时间 datetime
expire_time 失效时间 datetime
process_status 进度状态 varchar(20)
tracking_no 物流单编号 varchar(100)
parent_order_id 父订单编号 bigint(20)
img_url 图片路径 varchar(200)
province_id 地区 int(20)
activity_reduce_amount 促销金额 decimal(16,2)
coupon_reduce_amount 优惠券 decimal(16,2)
original_total_amount 原价金额 decimal(16,2)
freight_fee 运费 decimal(16,2)
freight_fee_reduce 运费减免 decimal(16,2)
refundable_time 可退款日期(签收后30天) datetime

退单表(order_refund_info)

字段名 字段说明 类型
id 编号 bigint(20)
user_id 用户id bigint(20)
order_id 订单id bigint(20)
sku_id skuid bigint(20)
refund_type 退款类型 varchar(20)
refund_num 退货件数 bigint(20)
refund_amount 退款金额 decimal(16,2)
refund_reason_type 原因类型 varchar(200)
refund_reason_txt 原因内容 bigint(20)
refund_status 退款状态(0:待审批 1:已退款) bigint(10)
create_time 创建时间 datetime

订单状态流水表(order_status_log)

字段名 字段说明 类型
id 主键 bigint(11)
order_id 订单id bigint(11)
order_status 订单状态 varchar(11)
operate_time 操作时间 datetime

支付表(payment_info)

字段名 字段说明 类型
id 编号 int(11)
out_trade_no 对外业务编号 varchar(50)
order_id 订单编号 bigint(50)
user_id 用户id bigint(20)
payment_type 支付类型(微信 支付宝) varchar(20)
trade_no 交易编号 varchar(50)
total_amount 支付金额 decimal(10,2)
subject 交易内容 varchar(200)
payment_status 支付状态 varchar(20)
create_time 创建时间 datetime
callback_time 回调时间 datetime
callback_content 回调信息 text

退款表(refund_payment)

字段名 字段说明 类型
id 编号 int(11)
out_trade_no 对外业务编号 bigint(20)
order_id 订单编号 bigint(20)
sku_id 商品id bigint(20)
payment_type 支付类型(微信 支付宝) varchar(20)
trade_no 交易编号 varchar(50)
total_amount 退款金额 decimal(10,2)
subject 交易内容 varchar(200)
refund_status 退款状态 varchar(30)
create_time 创建时间 datetime
callback_time 回调时间 datetime
callback_content 回调信息 text

SKU平台属性值表(sku_attr_value)

字段名 字段说明 类型
id 编号 bigint(20)
attr_id 属性id(冗余) bigint(20)
value_id 属性值id bigint(20)
sku_id skuid bigint(20)
attr_name 属性名称 varchar(30)
value_name 属性值名称 varchar(30)

SKU信息表(sku_info)

字段名 字段说明 类型
id 库存id(itemID) bigint(20)
spu_id 商品id bigint(20)
price 价格 decimal(10,0)
sku_name sku名称 varchar(200)
sku_desc 商品规格描述 varchar(2000)
weight 重量 decimal(10,2)
tm_id 品牌(冗余) bigint(20)
category3_id 三级分类id(冗余) bigint(20)
sku_default_img 默认显示图片(冗余) varchar(300)
is_sale 是否销售(1:是 0:否) tinyint(3)
create_time 创建时间 datetime

SKU销售属性表(sku_sale_attr_value)

字段名 字段说明 类型
id id bigint(20)
sku_id 库存单元id bigint(20)
spu_id spu_id(冗余) int(11)
sale_attr_value_id 销售属性值id bigint(20)
sale_attr_id 销售属性id bigint(20)
sale_attr_name 销售属性名 varchar(30)
sale_attr_value_name 销售属性值名称 varchar(30)

SPU信息表(spu_info)

字段名 字段说明 类型
id 商品id bigint(20)
spu_name 商品名称 varchar(200)
description 商品描述(后台简述) varchar(1000)
category3_id 三级分类id bigint(20)
tm_id 品牌id bigint(20)

SPU销售属性表(spu_sale_attr)

字段名 字段说明 类型
id 编号(业务中无关联) bigint(20)
spu_id 商品id bigint(20)
base_sale_attr_id 销售属性id bigint(20)
sale_attr_name 销售属性名称(冗余) varchar(20)

SPU销售属性值表(spu_sale_attr_value)

字段名 字段说明 类型
id 销售属性值编号 bigint(20)
spu_id 商品id bigint(20)
base_sale_attr_id 销售属性id bigint(20)
sale_attr_value_name 销售属性值名称 varchar(20)
sale_attr_name 销售属性名称(冗余) varchar(20)

用户地址表(user_address)

字段名 字段说明 类型
id 编号 bigint(20)
user_id 用户id bigint(20)
province_id 省份id bigint(20)
user_address 用户地址 varchar(500)
consignee 收件人 varchar(40)
phone_num 联系方式 varchar(40)
is_default 是否是默认 varchar(1)

用户信息表(user_info)

字段名 字段说明 类型
id 编号 bigint(20)
login_name 用户名称 varchar(200)
nick_name 用户昵称 varchar(200)
passwd 用户密码 varchar(200)
name 用户姓名 varchar(200)
phone_num 手机号 varchar(200)
email 邮箱 varchar(200)
head_img 头像 varchar(200)
user_level 用户级别 varchar(200)
birthday 用户生日 date
gender 性别 M男,F女 varchar(1)
create_time 创建时间 datetime
operate_time 修改时间 datetime
status 状态 varchar(200)

模拟生成业务数据

MySQL安装

Docker 安装

https://blog.csdn.net/qq_44226094/article/details/123194965

业务数据生成

设置数据库名称为 gmall,编码为 utf-8,排序规则为 utf8_general_ci

在这里插入图片描述

选择 sql 文件进行导入

在这里插入图片描述

cpucode101/opt/module/db_log 文件夹

mkdir db_log

在这里插入图片描述

gmall2020-mock-db-2021-11-14.jarapplication.properties 上传到 cpucode101/opt/module/db_log 路径上

在这里插入图片描述

修改文件所有者和文件关联组

sudo chown cpu:cpu application.properties
sudo chown cpu:cpu gmall2020-mock-db-2021-11-14.jar

在这里插入图片描述

根据需求修改 application.properties 相关配置

vim application.properties
logging.level.root=info

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://cpucode102:3306/gmall?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=xxxxxx

logging.pattern.console=%m%n

mybatis-plus.global-config.db-config.field-strategy=not_null
mybatis.mapperLocations=classpath:mapper/*.xml

#业务日期
mock.date=2020-06-14
#是否重置,首日须设置为1
mock.clear=1
#是否重置用户,首日须设置为1
mock.clear.user=1

#生成新用户数量
mock.user.count=200
#男性比例
mock.user.male-rate=20
#用户数据变化概率
mock.user.update-rate:20

#收藏取消比例
mock.favor.cancel-rate=10
#收藏数量
mock.favor.count=100

#每个用户添加购物车的概率
mock.cart.user-rate=10
#每次每个用户最多添加多少种商品进购物车
mock.cart.max-sku-count=8 
#每个商品最多买几个
mock.cart.max-sku-num=3 

#购物车来源  用户查询,商品推广,智能推荐, 促销活动
mock.cart.source-type-rate=60:20:10:10

#用户下单比例
mock.order.user-rate=30
#用户从购物中购买商品比例
mock.order.sku-rate=50
#是否参加活动
mock.order.join-activity=1
#是否使用购物券
mock.order.use-coupon=1
#购物券领取人数
mock.coupon.user-count=100

#支付比例
mock.payment.rate=70
#支付方式 支付宝:微信 :银联
mock.payment.payment-type=30:60:10

#评价比例 好:中:差:自动
mock.comment.appraise-rate=30:10:10:50

#退款原因比例:质量问题 商品描述与实际描述不一致 缺货 号码不合适 拍错 不想买了 其他
mock.refund.reason-rate=30:10:20:5:15:5:5

logging.level.com.atguigu.gmall2020.mock.db.mapper=debug

在这里插入图片描述

生成 2020-06-14 日期数据:

java -jar gmall2020-mock-db-2021-11-14.jar

在这里插入图片描述

查看 gmall 数据库,观察是否有 2020-06-14 的数据出现

vim application.properties

修改其中的数据

#业务日期
mock.date=2020-06-15
#是否重置,首日须置为1,之后置为0
mock.clear=0
#是否重置用户,首日须置为1,之后置为0
mock.clear.user=0

重新启动 , 插入新数据

java -jar gmall2020-mock-db-2021-11-14.jar

业务数据梳理工具

CHINER 这款数据库设计工具,来辅助我们梳理复杂的业务表关系

导入 mysql

在这里插入图片描述

使用这个导入

在这里插入图片描述

加关系图

在这里插入图片描述

点击拖拽就可以

在这里插入图片描述

业务数据采集平台搭建 :

https://blog.csdn.net/qq_44226094/article/details/123171150

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐