kuhuo
kuhuo
发布于 2024-06-30 / 365 阅读
0
0

第10章 业务数据介绍及生成

10.1 电商系统表结构

以下为本电商数仓系统涉及到的业务数据表结构关系。这34个表以订单表、用户表、SKU商品表、活动表和优惠券表为中心,延伸出了优惠券领用表、支付流水表、活动订单表、订单详情表、订单状态表、商品评论表、编码字典表退单表、SPU商品表等,用户表提供用户的详细信息,支付流水表提供该订单的支付详情,订单详情表提供订单的商品数量等情况,商品表给订单详情表提供商品的详细信息。本次讲解以此34个表为例,实际项目中,业务数据库中表格远远不止这些。

10.1.1 活动信息表(activity_info)

字段名

字段说明

id

活动id

activity_name

活动名称

activity_type

活动类型(1:满减,2:折扣)

activity_desc

活动描述

start_time

开始时间

end_time

结束时间

create_time

创建时间

10.1.2 活动规则表(activity_rule)

id

编号

activity_id

活动ID

activity_type

活动类型

condition_amount

满减金额

condition_num

满减件数

benefit_amount

优惠金额

benefit_discount

优惠折扣

benefit_level

优惠级别

10.1.3 活动商品关联表(activity_sku)

字段名

字段说明

id

编号

activity_id

活动id

sku_id

sku_id

create_time

创建时间

10.1.4 平台属性表(base_attr_info)

字段名

字段说明

id

编号

attr_name

属性名称

category_id

分类id

category_level

分类层级

10.1.5 平台属性值表(base_attr_value)

字段名

字段说明

id

编号

value_name

属性值名称

attr_id

属性id

10.1.6 一级分类表(base_category1)

字段名

字段说明

id

编号

name

分类名称

10.1.7 二级分类表(base_category2)

字段名

字段说明

id

编号

name

二级分类名称

category1_id

一级分类编号

10.1.8 三级分类表(base_category3)

字段名

字段说明

id

编号

name

三级分类名称

category2_id

二级分类编号

10.1.9 字典表(base_dic)

字段名

字段说明

dic_code

编号

dic_name

编码名称

parent_code

父编号

create_time

创建日期

operate_time

修改日期

10.1.10 省份表(base_province)

字段名

字段说明

id

id

name

省名称

region_id

大区id

area_code

行政区位码

iso_code

国际编码

iso_3166_2

ISO3166编码

10.1.11 地区表(base_region)

字段名

字段说明

id

大区id

region_name

大区名称

10.1.12 品牌表(base_trademark)

字段名

字段说明

id

编号

tm_name

属性值

logo_url

品牌logo的图片路径

10.1.13 购物车表(cart_info)

字段名

字段说明

id

编号

user_id

用户id

sku_id

skuid

cart_price

放入购物车时价格

sku_num

数量

img_url

图片文件

sku_name

sku名称 (冗余)

is_checked

是否已经下单

create_time

创建时间

operate_time

修改时间

is_ordered

是否已经下单

order_time

下单时间

source_type

来源类型

source_id

来源编号

10.1.14 评价表(comment_info)

字段名

字段说明

id

编号

user_id

用户id

nick_name

用户昵称

head_img

图片

sku_id

商品sku_id

spu_id

商品spu_id

order_id

订单编号

appraise

评价 1 好评 2 中评 3 差评

comment_txt

评价内容

create_time

创建时间

operate_time

修改时间

10.1.15 优惠券信息表(coupon_info)

字段名

字段说明

id

购物券编号

coupon_name

购物券名称

coupon_type

购物券类型 1 现金券 2 折扣券 3 满减券 4 满件打折券

condition_amount

满额数(3)

condition_num

满件数(4)

activity_id

活动编号

benefit_amount

减金额(1 3)

benefit_discount

折扣(2 4)

create_time

创建时间

range_type

范围类型 1、商品(spuid) 2、品类(三级分类id) 3、品牌

limit_num

最多领用次数

taken_count

已领用次数

start_time

可以领取的开始日期

end_time

可以领取的结束日期

operate_time

修改时间

expire_time

过期时间

range_desc

范围描述

10.1.16 优惠券优惠范围表(coupon_range)

字段名

字段说明

id

购物券编号

coupon_id

优惠券id

range_type

范围类型 1、商品(spuid) 2、品类(三级分类id) 3、品牌

range_id

范围id

10.1.17 优惠券领用表(coupon_use)

字段名

字段说明

id

编号

coupon_id

购物券id

user_id

用户id

order_id

订单id

coupon_status

购物券状态(1:未使用 2:已使用)

get_time

获取时间

using_time

使用时间

used_time

支付时间

expire_time

过期时间

10.1.18 收藏表(favor_info)

字段名

字段说明

id

编号

user_id

用户id

sku_id

skuid

spu_id

商品id

is_cancel

是否已取消 0 正常 1 已取消

create_time

创建时间

cancel_time

修改时间

10.1.19 订单明细表(order_detail)

字段名

字段说明

id

编号

order_id

订单编号

sku_id

sku_id

sku_name

sku名称(冗余)

img_url

图片名称(冗余)

order_price

购买价格(下单时sku价格)

sku_num

购买个数

create_time

创建时间

source_type

来源类型

source_id

来源编号

split_total_amount

分摊总金额

split_activity_amount

分摊活动减免金额

split_coupon_amount

分摊优惠券减免金额

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

字段名

字段说明

id

编号

order_id

订单id

order_detail_id

订单明细id

activity_id

活动id

activity_rule_id

活动规则

sku_id

skuid

create_time

获取时间

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

字段名

字段说明

id

编号

order_id

订单id

order_detail_id

订单明细id

coupon_id

购物券id

coupon_use_id

购物券领用id

sku_id

skuid

create_time

获取时间

10.1.22 订单表(order_info)

字段名

字段说明

id

编号

consignee

收货人

consignee_tel

收件人电话

total_amount

总金额

order_status

订单状态

user_id

用户id

payment_way

付款方式

delivery_address

送货地址

order_comment

订单备注

out_trade_no

订单交易编号(第三方支付用)

trade_body

订单描述(第三方支付用)

create_time

创建时间

operate_time

操作时间

expire_time

失效时间

process_status

进度状态

tracking_no

物流单编号

parent_order_id

父订单编号

img_url

图片路径

province_id

地区

activity_reduce_amount

促销金额

coupon_reduce_amount

优惠金额

original_total_amount

原价金额

feight_fee

运费

feight_fee_reduce

运费减免

refundable_time

可退款日期(签收后30天)

10.1.23 退单表(order_refund_info)

字段名

字段说明

id

编号

user_id

用户id

order_id

订单id

sku_id

skuid

refund_type

退款类型

refund_num

退货件数

refund_amount

退款金额

refund_reason_type

原因类型

refund_reason_txt

原因内容

refund_status

退款状态(0:待审批 1:已退款)

create_time

创建时间

10.1.24 订单状态流水表(order_status_log)

字段名

字段说明

id

编号

order_id

订单编号

order_status

订单状态

operate_time

操作时间

10.1.25 支付表(payment_info)

字段名

字段说明

id

编号

out_trade_no

对外业务编号

order_id

订单编号

user_id

用户id

payment_type

支付类型(微信 支付宝)

trade_no

交易编号

total_amount

支付金额

subject

交易内容

payment_status

支付状态

create_time

创建时间

callback_time

回调时间

callback_content

回调信息

10.1.26 退款表(refund_payment)

字段名

字段说明

id

编号

out_trade_no

对外业务编号

order_id

订单编号

sku_id

商品sku_id

payment_type

支付类型(微信 支付宝)

trade_no

交易编号

total_amount

退款金额

subject

交易内容

refund_status

退款状态

create_time

创建时间

callback_time

回调时间

callback_content

回调信息

10.1.27 SKU平台属性表(sku_attr_value)

字段名

字段说明

id

编号

attr_id

属性id(冗余)

value_id

属性值id

sku_id

skuid

attr_name

属性名称

value_name

属性值名称

10.1.28 SKU信息表(sku_info)

字段名

字段说明

id

库存id(itemID)

spu_id

商品id

price

价格

sku_name

sku名称

sku_desc

商品规格描述

weight

重量

tm_id

品牌(冗余)

category3_id

三级分类id(冗余)

sku_default_img

默认显示图片(冗余)

is_sale

是否销售(1:是 0:否)

create_time

创建时间

10.1.29 SKU销售属性表(sku_sale_attr_value)

字段名

字段说明

id

id

sku_id

库存单元id

spu_id

spu_id(冗余)

sale_attr_value_id

销售属性值id

sale_attr_id

销售属性id

sale_attr_name

销售属性值名称

sale_attr_value_name

销售属性值名称

10.1.30 SPU信息表(spu_info)

字段名

字段说明

id

商品id

spu_name

商品名称

description

商品描述(后台简述)

category3_id

三级分类id

tm_id

品牌id

10.1.31 SPU销售属性表(spu_sale_attr)

字段名

字段说明

id

编号(业务中无关联)

spu_id

商品id

base_sale_attr_id

销售属性id

sale_attr_name

销售属性名称(冗余)

10.1.32 SPU销售属性值表(spu_sale_attr_value)

字段名

字段说明

id

销售属性值编号

spu_id

商品id

base_sale_attr_id

销售属性id

sale_attr_value_name

销售属性值名称

sale_attr_name

销售属性名称(冗余)

10.1.33 用户地址表(user_address)

字段名

字段说明

id

编号

user_id

用户id

province_id

省份id

user_address

用户地址

consignee

收件人

phone_num

联系方式

is_default

是否是默认

10.1.34 用户信息表(user_info)

字段名

字段说明

id

编号

login_name

用户名称

nick_name

用户昵称

passwd

用户密码

name

用户姓名

phone_num

手机号

email

邮箱

head_img

头像

user_level

用户级别

birthday

用户生日

gender

性别 M男,F女

create_time

创建时间

operate_time

修改时间

status

状态

建表语句可在githubgitee中查看

https://gitee.com/wzylzjtn/data-warehouse-learning

https://github.com/Mrkuhuo/data-warehouse-learning

10.2 业务数据模拟

10.2.1 连接MySQL

通过MySQL可视化客户端连接数据库。

10.2.2 建表语句

1)创建数据库

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

3)导入数据库结构脚本(gmall.sql

注意:完成后,要记得右键,刷新一下对象浏览器,就可以看见数据库中的表了。

10.2.3 生成业务数据

1)在192.168.244.129/opt/upload/目录下创建db_log文件夹

[root@192 upload]$ mkdir db_log/

2)把datageneration2024-mock-db-2024-05-01.jarapplication.properties上传到192.168.244.129/opt/ upload /db_log路径上。

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

logging.level.root=info


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

logging.pattern.console=%m%n


mybatis-plus.global-config.db-config.field-strategy=not_null


#业务日期
mock.date=2020-06-14
#是否重置  注意:第一次执行必须设置为1,后续不需要重置不用设置为1
mock.clear=1
#是否重置用户 注意:第一次执行必须设置为1,后续不需要重置不用设置为1
mock.clear.user=1

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

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

#每个用户添加购物车的概率
mock.cart.user-rate=50
#每次每个用户最多添加多少种商品进购物车
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=50
#用户从购物中购买商品比例
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

4)并在该目录下执行,如下命令,生成2020-06-14日期数据:

[root@192 db_log]$ java -jar datageneration2024-mock-db-2024-05-01.jar

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


评论