目 录CONTENT

文章目录

商城数据表设计

zhouzz
2024-08-31 / 0 评论 / 0 点赞 / 12 阅读 / 27081 字
温馨提示:
本文最后更新于 2024-08-31,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

本系统实现的主要功能是商城后台管理系统和移动端微信小程序相关的业务,
同时还会涉及安全管理的用户登录和访问控制,
因此本系统业务所需要的数据库表可以为六部分:

  • 系统业务相关表
  • 会员业务相关表
  • 商品业务相关表
  • 门店业务相关表
  • 购物车业务相关表
  • 订单业务相关表

1.系统整体业务表关系

20240831013510.png

2.系统业务表结构

权限设计模型:以下五张表是基于角色的权限控制访问系统:RBAC0。

系统业务表包括:系统用户表、系统角色表、系统权限表、系统用户与角色关系表、系统角色与权限关系表。

该业务所涉及的上述5张表的关系如下图所示。

20240831013942.png

用户和角色是多对多,角色和权限是多对多。一个用户拥有的权限,是他所有角色的集合。

下面详细描述以上五张表的结构。

1.系统用户表 sys_user

系统用户表sys_user主要描述了后台管理系统用户的用户名、密码、email、status等属性。

字段名类型长度是否为主键说明
user_idbigint0用户id
usernamevarchar50用户名
passwordvarchar100登录密码(加密后的密码)
emailvarchar100邮箱
mobilevarchar100手机号码
user_statustinyint0用户状态:0禁用,1正常
create_user_idbigint0创建者id
create_timedatetime0创建时间
shop_idbigint0店铺id

2.系统角色表 sys_role

系统角色表sys_role主要描述了后台管理系统角色的角色名称、角色备注等属性。

字段名类型长度是否为主键说明
role_idbigint0角色id
role_namevarchar100角色名称
remarkvarchar100备注
create_user_idbigint0创建者id
create_timedatetime0创建时间

3.系统权限表 sys_menu

系统权限表sys_menu主要描述了后台管理系统权限的菜单父id、菜单名称、菜单URL、菜单权限、菜单类型(0表示目录,1表示菜单,2表示按钮)、菜单序号等属性。

字段名类型长度是否为主键说明
menu_idbigint0权限id
parent_idbigint0父菜单ID,一级菜单为0
namevarchar50菜单名称
urlvarchar200菜单URL
permsvarchar500授权(多个用逗号分隔,如:user:list,user:create)
typeint0类型:0目录、1菜单、2按钮
iconvarchar50菜单图标
order_numint0排序

4.系统用户与角色关系表 sys_user_role

系统用户与角色关系表sys_user_role主要描述了后台管理系统用户与角色的关系,表中属性包含用户id、角色id。

字段名类型长度是否为主键说明
idbigint0标识
user_idbigint0用户id
role_idbigint0角色id

5.系统角色与权限关系表 sys_role_menu

系统角色与权限关系表sys_role_menu主要描述了后台管理系统角色与权限关系,属性包含权限id、角色id。

字段名类型长度是否为主键说明
idbigint0标识
menu_idbigint0权限id
role_idbigint0角色id

在实际开发中,读者可以根据需要自行扩展。
需要注意的是,系统相关的表涉及项目整合Spring Security进行安全管理控制;
同时系统用户表中的password字段赋值时,必须为加密后的密文。

3.商品业务表结构

商品业务表包括:商品类目表、商品分组标签表、
商品与分组标签关系表、商品属性表、商品属性值表、
商品评论表、商品表、商品sku表。

1.商品类目表 product_category

商品类目与商品的的关系是:一对多。
20240831020147.png

上图说明了商品的类目具体有哪些。

每个类目下可以包含多个商品,而每个商品只能属于一个类目。这种关系确保了商品信息的系统化和标准化,使得消费者能够更容易地浏览和搜索到他们感兴趣的商品。

商品类目表 product_category 主要描述了商品类目的类目名称、类目状态、类目父节点id、类目序号等属性。

字段名类型长度是否为主键说明
category_idbigint类目id
parent_idbigint父节点id
category_namevarchar50产品类目名称
iconvarchar255类目图标
picvarchar255类目的显示图片
seqint排序
category_statusint默认是1,表示正常状态,0为下线状态
create_timedatetime创建时间
update_timdatetime更新时间

2.商品分组标签表 product_tag

商品分组标签表 product_tag 主要描述了商品分组标签的分组标题、分组状态、分组列表样式(0一列一个商品,1一列二个商品,2一列三个商品)等属性。

20240831021316.png

分组标签是对商品分类的补充,把一些相似的商品放在一起管理和展示商品,以促进销售和提升用户体验。

字段名类型长度是否为主键说明
idbigint0分组标签id
titlevarchar100分组标题
seqint排序
statustinyint0状态(1为正常,0为删除)
styleint0列表样式(0:一列展示一个商品;1:一列两个;2:一列三个)
create_timetimestamp0创建时间
update_timetimestamp0更新时间

3.商品与分组标签关系表 product_tag_reference

商品与分组标签关系表product_tag_reference主要描述了商品与分组标签关系的分组标签id、商品id、店铺id等属性。

字段名类型长度是否为主键说明
reference_idbigint0分组引用id
shop_idbigint0店铺id
tag_idbigint0标签id
product_idbigint0商品id
statustinyint0状态(1为正常,0为删除)
create_timetimestamp0创建时间

4.商品属性表product_prop

商品属性表product_prop主要描述了商品属性的属性名称、属性规则、店铺id等属性。

字段名类型长度是否为主键说明
prop_idbigint0属性id
prop_namevarchar100属性名称
ruletinyint0productPropRule 1:销售属性(规格); 2:参数属性;
shop_idbigint0店铺id

5.商品属性值表 product_prop_value

商品属性值表product_prop_value主要描述了商品属性值的属性值名称、属性id等属性。

字段名类型长度是否为主键说明
value_idbigint0属性值ID
prop_valuevarchar100属性值名称
prop_idbigint0属性ID

6.商品评论表 product_comm

商品评论表product_comm主要描述了商品评论的商品id、商品名称、评论用户id、评论内容、回复内容、回复状态、IP来源、评论得分、评论图片、是否匿名、评论状态、评论的评价等属性。

字段名类型长度是否为主键说明
product_comm_idbigint0评论id
product_idbigint0商品ID
product_namevarchar255商品的名字
order_item_idvarchar255订单项ID
open_idvarchar300评论用户ID
contentint评论内容
reply_contentint0掌柜回复内容
create_timedatetime0记录时间
reply_timedatetime0回复时间
reply_stsint是否回复 0:未回复 1:已回复
post_ipvarchar16IP来源
scoretinyint0得分,0-5分
useful_countsint0有用的计数
picsvarchar1000晒图的json字符串
is_anonymousint0是否匿名(1:是 0:否)
statusint0是否显示,1:为显示,0:待审核, -1:不通过审核,不显示。 如果需要审核评论,则是0,,否则1
evaluatetinyint0评价(0好评 1中评 2差评)
shop_idbigint0店铺id

7.商品表 product

商品类product主要描述了商品的商品名称、店铺id、商品原价、商品现价、商品卖点、商品详细描述、商品主图地址、商品状态、商品所属类目id、商品销量、商品总库存数量、等属性。

字段名类型长度是否为主键说明
product_idbigint0商品ID
product_namevarchar300商品的名字
shop_idbigint0店铺ID
ori_pricedecimal15原价
pricedecimal15现价
briefvarchar500简要描述,卖点等
contenttext0详细描述
picvarchar255商品主图
imgsvarchar1000商品图片,多个图片以,分割
product_statusint0默认是1,表示正常状态, -1表示删除, 0下架
category_idbigint0商品所属类目id
sold_numint0销量
total_stocksint0总库存
delivery_modejson0配送模式
delivery_template_idbigint0运费模板id
create_timetimestamp0录入时间
update_timetimestamp0修改时间
putaway_timetimestamp0上架时间
versionint0版本 乐观锁

8.商品sku表

Spu(product表):华为 Mate60Pro

sku(sku表):华为 Mate60Pro,颜色,白色,型号:16G+1T

商品sku表主要描述了商品sku的商品id、商品sku的属性、商品sku原价、商品sku现价、商品sku实际库存数量、商品sku图片地址、商品sku名称、商品名称、等属性。

字段名类型长度是否为主键说明
sku_idbigint0单品ID
product_idbigint0商品ID
propertiesvarchar2000销售属性组合字符串,格式是p1:v1;p2:v2
ori_pricedecimal15原价
pricedecimal15现价
stocksint500商品在付款减库存的状态下,该sku上未付款的订单数量
actual_stocksint0实际库存
picvarchar500sku图片
sku_namevarchar120sku名称
product_namevarchar255商品名称
model_idvarchar100商品条形码
weightdouble0商品重量
volumedouble0商品体积
sku_statustinyint00 禁用 1 启用
delivery_template_idbigint0运费模板id
create_timetimestamp0录入时间
update_timetimestamp0修改时间
versionint0版本 乐观锁

商品表product和商品sku表中的version版本号字段是乐观锁中的版本号机制。而版本号机制是解决数据冲突的一种方案。

版本号机制一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数。当数据被修改时,version值会加1。

当线程A要更新数据值时,在读取数据的同时也会读取version值,在提交更新时,若刚才读取到的version值为当前数据库中的version值相等时才更新,否则重试更新操作,直到更新成功。

4.门店业务表结构

门店业务表包括:公告表、轮播图表、地区表。

下面详细描述以上三张表的结构。

1.公告表notice

公告表notice主要描述了公告的公告标题、公告内容、公告状态、是否置顶等属性。

字段名类型长度是否为主键说明
idbigint0公告id
shop_idbigint0店铺id
titlevarchar100公告标题
contenttext15公告内容
statustinyint1状态(1:公布 0:撤回)
is_toptinyint500是否置顶:1置顶,0不置顶
create_timetimestamp0录入时间
update_timetimestamp0修改时间

2.轮播图表 index_img

轮播图表index_img主要描述了轮播图的图片地址、图片状态、店铺id等属性。

字段名类型长度是否为主键说明
img_idbigint0轮播图id
shop_idbigint0店铺id
img_urlvarchar200图片
desvarchar200说明文字,描述
titlevarchar200标题
linkvarchar200链接
statustinyint1状态:默认1显示,0不显示
seqint0顺序
create_timetimestamp0录入时间
update_timetimestamp0修改时间

3.地址表area

地区表area主要描述了地区的地区名称、地区父节点id、地区级别等属性。

字段名类型长度是否为主键说明
area_idbigint0地区id
area_namevarchar100地区名称
parent_idbigint0地区父节点id
levelInt0级别

5.会员业务表结构

会员业务表包括:会员用户表、会员用户收藏记录表、会员用户收货地址表。

下面详细描述以上三张表的结构。

1.会员用户表member

会员用户表member主要描述了会员用户的微信openid、会员昵称、会员头像地址、注册时间等属性。

字段名类型长度是否为主键说明
idbigint0会员表的主键
open_idvarchar36微信openid
nick_namevarchar50用户昵称
real_namevarchar50真实姓名
user_mailvarchar100用户邮箱
pay_passwordvarchar50支付密码
user_mobilevarchar50手机号码
create_timedatetime0注册时间
update_timedatetime0修改时间
user_regipvarchar50注册IP
user_lasttimedatetime0最后登录时间
user_lastipvarchar0最后登录IP
sexchar1M(男) or F(女)
birth_datechar10例如:2009-11-27
picvarchar255头像图片路径
statusint0状态 1 正常 0 无效
scoreint0用户积分

2.会员用户收藏记录表 member_collection

会员收藏记录表member_collection主要描述了会员收藏记录的会员用户id、收藏商品id、收藏时间等属性。

字段名类型长度是否为主键说明
idbigint0会员表的主键
open_idvarchar36会员用户id
prod_idvarchar50商品id
create_timedatetime50收藏时间

3.会员收货地址表member_addr

会员收货地址表member_addr主要描述了会员收货地址的会员用户id、收货人姓名、省id、省名称、市id、市名称、区id、区名称、收货详细地址、收货人手机号码、是否默认收货地址等属性。

字段名类型长度是否为主键说明
addr_idbigint0收货地址id
open_idvarchar36会员用户id
receivervarchar50收货人姓名
province_idbigint0省id
provincevarchar100省名称
cityvarchar20市名称
city_idbigint0市id
areavarchar20区名称
area_idbigint0区id
post_codevarchar15邮编
addrvarchar1000收货详细地址
mobilevarchar20收货人手机号码
statusint0收货地址状态
common_addrint01默认收货地址,0非默认
create_timedatetime0创建时间
update_timedatetime0修改时间

6.购物车业务表结构

购物车业务表包括:购物车表。

购物车表basket主要描述了购物车的商品id、商品skuId、会员用户id、商品数量等属性。

字段名类型长度是否为主键说明
basket_idbigint0会员表的主键
shop_idbigint0店铺id
prod_idbigint0产品id
sku_idbigint0商品skuId
open_idvarchar50会员用户id
prod_countint0商品数量
create_timetimestamp0购物时间

7.订单业务表结构

订单业务表包括:订单表、订单商品条目表。

下面详细描述以上两张表的结构。

1.订单表 order

订单表order主要描述了订单记录的订单编号、订单总值、实际总值、订单备注、订单状态、订单运费、订单收货地址id、订单商品总数量、订购时间、订单支付状态、订单关闭类型等属性。

字段名类型长度是否为主键说明
order_idbigint0订单ID
open_idvarchar36订购用户ID
order_numbervarchar64订单编号
total_moneydecimal15总值
actual_totaldecimal15实际总值
remarksvarchar1024订单备注
statusint0订单状态 1:待付款 2:待发货 3:待收货 4:待评价 5:成功 6:失败
dvy_typevarchar10配送类型
dvy_idbigint0配送方式ID
dvy_flow_idvarchar100物流单号
freight_amountdecimal15订单运费
addr_order_idbigint0用户订单地址Id
product_numsint0订单商品总数
create_timetimestamp0订购时间
update_timetimestamp0订单更新时间
pay_timetimestamp0付款时间
dvy_timetimestamp0发货时间
finally_timetimestamp0完成时间
cancel_timetimestamp0取消时间
is_payedtinyint1是否已经支付,1:已经支付过,0:,没有支付过
delete_statusint0用户订单删除状态,0:没有删除,1:回收站, 2:永久删除
refund_stsint00:默认,1:在处理,2:处理完成
reduce_amountdecimal15优惠总额
close_typetinyint0订单关闭原因 1-超时未支付 2-退款关闭 4-买家取消 15-已通过货到付款交易

2.订单商品条目表 order_item

订单商品条目表order_item主要描述了购物车中商品条目对象的店铺id、订单编号、商品id、商品skuId、购买商品数量、商品名称、商品sku名称、商品图片地址、商品单价、商品总金额、购物时间、评论状态等属性。

字段名类型长度是否为主键说明
order_item_idbigint0订单项ID
shop_idbigint36店铺id
order_numbervarchar64订单编号
prod_idbigint15产品ID
sku_idbigint15产品SkuID
prod_countint10购物车产品个数
prod_namevarchar0产品名称
sku_namevarchar10sku名称
picvarchar0产品主图片路径
pricedecimal100产品价格
product_total_amountdecimal15单个商品总金额
create_timetimestamp0购物时间
comm_stsint0评论状态: 0 未评价 1 已评价

8.小结

0

评论区