Files
TaoTaoWang_backend/doc/数据库表结构与关系文档.md
qingfeng1121 51086db30e feat: 添加用户登录服务及JWT认证功能
refactor: 重构实体类并添加Lombok注解

docs: 更新数据库表结构文档

style: 清理无用代码并优化格式

fix: 修复用户详情服务中的联系方式更新方法

build: 更新pom.xml配置并添加Lombok插件

test: 添加用户登录测试用例

chore: 添加开发和生产环境配置文件
2025-11-28 14:14:38 +08:00

16 KiB
Raw Blame History

数据库表结构与关系文档

目录

  1. 用户相关表
  2. 权限相关表
  3. 店铺相关表
  4. 商品相关表
  5. 订单相关表
  6. 支付与退款相关表
  7. 评价相关表
  8. 表与表之间的关系

用户相关表

users表

字段名 类型 描述 备注
id BIGINT 用户ID 主键,自增
username VARCHAR 用户名 唯一
password VARCHAR 密码 加密存储
email VARCHAR 邮箱 唯一
phone VARCHAR 手机号 唯一
avatar VARCHAR 头像URL
status INTEGER 状态 0:禁用, 1:启用
lastLoginTime DATE 最后登录时间
createdAt DATE 创建时间
updatedAt DATE 更新时间

user_details表

字段名 类型 描述 备注
id BIGINT 详情ID 主键,自增
userId BIGINT 用户ID 外键关联users表
realName VARCHAR 真实姓名
idCard VARCHAR 身份证号
gender VARCHAR 性别 男、女、保密
birthday DATE 生日
address VARCHAR 地址
province VARCHAR 省份
city VARCHAR 城市
district VARCHAR 区县
createdAt DATE 创建时间
updatedAt DATE 更新时间

权限相关表

roles表

字段名 类型 描述 备注
id BIGINT 角色ID 主键,自增
roleName VARCHAR 角色名称
description VARCHAR 角色描述
roleType INTEGER 角色类型 0:默认用户,1:店主,2:管理员
status INTEGER 状态 0:禁用, 1:启用
createdAt DATE 创建时间
updatedAt DATE 更新时间

permissions表

字段名 类型 描述 备注
id BIGINT 权限ID 主键,自增
permissionName VARCHAR 权限名称
permissionCode VARCHAR 权限编码
description VARCHAR 权限描述
module VARCHAR 所属模块
status INTEGER 状态 0:禁用, 1:启用
createdAt DATE 创建时间
updatedAt DATE 更新时间

user_roles表

字段名 类型 描述 备注
id BIGINT 关联ID 主键,自增
userId BIGINT 用户ID 外键关联users表
roleId BIGINT 角色ID 外键关联roles表
createdAt DATE 创建时间

role_permissions表

字段名 类型 描述 备注
id BIGINT 关联ID 主键,自增
roleId BIGINT 角色ID 外键关联roles表
permissionId BIGINT 权限ID 外键关联permissions表
createdAt DATE 创建时间

店铺相关表

shops表

字段名 类型 描述 备注
id BIGINT 店铺ID 主键,自增
shopName VARCHAR 店铺名称
userId BIGINT 店主用户ID 外键关联users表
categoryId BIGINT 店铺分类ID 外键关联shop_categories表
shopLogo VARCHAR 店铺Logo
coverImage VARCHAR 店铺封面图
description VARCHAR 店铺描述
address VARCHAR 店铺地址
contactPhone VARCHAR 联系电话
contactPerson VARCHAR 联系人
rating DECIMAL 店铺评分
salesVolume INTEGER 销量
status INTEGER 状态 0: 未审核, 1: 已审核, 2: 已关闭, 3: 审核失败
businessLicense VARCHAR 营业执照
businessStartTime DATE 营业时间开始
businessEndTime DATE 营业时间结束
createdAt DATE 创建时间
updatedAt DATE 更新时间

shop_categories表

字段名 类型 描述 备注
id BIGINT 分类ID 主键,自增
categoryName VARCHAR 分类名称
parentId BIGINT 父分类ID 顶级分类为0
level INTEGER 分类级别
icon VARCHAR 分类图标
sort INTEGER 排序
status INTEGER 状态 0:禁用, 1:启用
createdAt DATE 创建时间
updatedAt DATE 更新时间

商品相关表

products表

字段名 类型 描述 备注
id BIGINT 商品ID 主键,自增
productName VARCHAR 商品名称
shopId BIGINT 店铺ID 外键关联shops表
categoryId BIGINT 商品分类ID 外键关联product_categories表
description VARCHAR 商品描述
mainImage VARCHAR 主图URL
originalPrice DECIMAL 原价
currentPrice DECIMAL 当前价格
salesVolume INTEGER 销量
status INTEGER 状态 0:下架, 1:上架
isDeleted INTEGER 是否删除 0: 未删除, 1: 已删除
createdAt DATE 创建时间
updatedAt DATE 更新时间

product_categories表

字段名 类型 描述 备注
id BIGINT 分类ID 主键,自增
categoryName VARCHAR 分类名称
parentId BIGINT 父分类ID 顶级分类为0
level INTEGER 分类级别 1、2、3
icon VARCHAR 分类图标
banner VARCHAR 分类横幅
sort INTEGER 排序
status INTEGER 状态 0:禁用, 1:启用
createdAt DATE 创建时间
updatedAt DATE 更新时间

product_attributes表

字段名 类型 描述 备注
id BIGINT 属性ID 主键,自增
attributeName VARCHAR 属性名称
categoryId BIGINT 分类ID 外键关联product_categories表
attributeType INTEGER 属性类型 0: 规格属性, 1: 销售属性
sort INTEGER 排序
createdAt DATE 创建时间
updatedAt DATE 更新时间

product_attribute_values表

字段名 类型 描述 备注
id BIGINT 属性值ID 主键,自增
productId BIGINT 商品ID 外键关联products表
attributeId BIGINT 属性ID 外键关联product_attributes表
attributeValue VARCHAR 属性值
sort INTEGER 排序
createdAt DATE 创建时间
updatedAt DATE 更新时间

product_images表

字段名 类型 描述 备注
id BIGINT 图片ID 主键,自增
productId BIGINT 商品ID 外键关联products表
imageUrl VARCHAR 图片URL
sort INTEGER 排序
isMain INTEGER 是否主图 0:非主图, 1:主图
createdAt DATE 创建时间

product_skus表

字段名 类型 描述 备注
id BIGINT SKU ID 主键,自增
productId BIGINT 商品ID 外键关联products表
skuCode VARCHAR SKU编码
skuSpecs VARCHAR SKU规格信息 JSON格式存储
price DECIMAL 价格
stock INTEGER 库存
image VARCHAR 图片
status INTEGER 状态 0:禁用, 1:启用
createdAt DATE 创建时间
updatedAt DATE 更新时间

product_inventories表

字段名 类型 描述 备注
id BIGINT 库存ID 主键,自增
skuId BIGINT SKU ID 外键关联product_skus表
currentStock INTEGER 当前库存
safetyStock INTEGER 安全库存
lockStock INTEGER 锁定库存
lastUpdateTime DATE 最后更新时间
createdAt DATE 创建时间
updatedAt DATE 更新时间

订单相关表

orders表

字段名 类型 描述 备注
id BIGINT 订单ID 主键,自增
orderNo VARCHAR 订单号
userId BIGINT 用户ID 外键关联users表
shopId BIGINT 店铺ID 外键关联shops表
totalAmount DECIMAL 总金额
actualAmount DECIMAL 实际支付金额
shippingFee DECIMAL 运费
orderStatus INTEGER 订单状态 0:待付款, 1:待发货, 2:待收货, 3:已完成, 4:已取消, 5:已退款
shippingAddress VARCHAR 收货地址
receiverName VARCHAR 收件人姓名
receiverPhone VARCHAR 收件人电话
paymentMethod VARCHAR 支付方式
paymentTime DATE 支付时间
shippingTime DATE 发货时间
deliveryTime DATE 送达时间
completeTime DATE 完成时间
remark VARCHAR 备注
createdAt DATE 创建时间
updatedAt DATE 更新时间

order_items表

字段名 类型 描述 备注
id BIGINT 订单项ID 主键,自增
orderId BIGINT 订单ID 外键关联orders表
productId BIGINT 商品ID 外键关联products表
skuId BIGINT SKU ID 外键关联product_skus表
productName VARCHAR 商品名称
skuSpecs VARCHAR SKU规格
productImage VARCHAR 商品图片
price DECIMAL 价格
quantity INTEGER 数量
subtotal DECIMAL 小计
itemStatus INTEGER 商品状态 0:正常, 1:已退款, 2:退款中
createdAt DATE 创建时间
updatedAt DATE 更新时间

order_status_history表

字段名 类型 描述 备注
id BIGINT 历史ID 主键,自增
orderId BIGINT 订单ID 外键关联orders表
previousStatus INTEGER 之前状态
currentStatus INTEGER 当前状态
changeReason VARCHAR 变更原因
operator VARCHAR 操作人
changeTime DATE 变更时间
createdAt DATE 创建时间

支付与退款相关表

payments表

字段名 类型 描述 备注
id BIGINT 支付ID 主键,自增
paymentNo VARCHAR 支付单号
orderId BIGINT 订单ID 外键关联orders表
userId BIGINT 用户ID 外键关联users表
amount DECIMAL 支付金额
paymentMethod VARCHAR 支付方式
transactionId VARCHAR 第三方交易流水号
paymentStatus INTEGER 支付状态 0:待支付, 1:支付成功, 2:支付失败, 3:已退款
paymentUrl VARCHAR 支付链接
expireTime DATE 过期时间
paymentTime DATE 支付时间
createdAt DATE 创建时间
updatedAt DATE 更新时间

refunds表

字段名 类型 描述 备注
id BIGINT 退款ID 主键,自增
refundNo VARCHAR 退款单号
orderId BIGINT 订单ID 外键关联orders表
orderItemId BIGINT 订单项ID 外键关联order_items表
userId BIGINT 用户ID 外键关联users表
shopId BIGINT 店铺ID 外键关联shops表
refundAmount DECIMAL 退款金额
refundReason VARCHAR 退款原因
refundType VARCHAR 退款类型
refundStatus INTEGER 退款状态 0:申请中, 1:退款成功, 2:退款失败, 3:已拒绝
refundAccount VARCHAR 退款账户
transactionId VARCHAR 交易ID
applyTime DATE 申请时间
processTime DATE 处理时间
processRemark VARCHAR 处理备注
createdAt DATE 创建时间
updatedAt DATE 更新时间

评价相关表

shop_ratings表

字段名 类型 描述 备注
id BIGINT 评价ID 主键,自增
shopId BIGINT 店铺ID 外键关联shops表
userId BIGINT 用户ID 外键关联users表
orderId BIGINT 订单ID 外键关联orders表
rating INTEGER 评分 1-5星
content VARCHAR 评价内容
images VARCHAR 评价图片 JSON格式存储
status INTEGER 状态 0:待审核, 1:已审核, 2:已删除
createdAt DATE 创建时间
updatedAt DATE 更新时间

表与表之间的关系

一对一关系

  1. users 和 user_details
    • 关系:一对一
    • 描述:每个用户只有一个详细信息记录
    • 外键user_details.userId -> users.id

一对多关系

  1. users 和 shops

    • 关系:一对多
    • 描述:一个用户可以创建多个店铺(店主)
    • 外键shops.userId -> users.id
  2. shops 和 products

    • 关系:一对多
    • 描述:一个店铺可以有多个商品
    • 外键products.shopId -> shops.id
  3. users 和 orders

    • 关系:一对多
    • 描述:一个用户可以有多个订单
    • 外键orders.userId -> users.id
  4. shops 和 orders

    • 关系:一对多
    • 描述:一个店铺可以有多个订单
    • 外键orders.shopId -> shops.id
  5. orders 和 order_items

    • 关系:一对多
    • 描述:一个订单可以包含多个商品项
    • 外键order_items.orderId -> orders.id
  6. products 和 product_images

    • 关系:一对多
    • 描述:一个商品可以有多个图片
    • 外键product_images.productId -> products.id
  7. products 和 product_skus

    • 关系:一对多
    • 描述一个商品可以有多个SKU
    • 外键product_skus.productId -> products.id
  8. product_skus 和 product_inventories

    • 关系:一对一/一对多(实际为一对一)
    • 描述一个SKU对应一个库存记录
    • 外键product_inventories.skuId -> product_skus.id
  9. orders 和 order_status_history

    • 关系:一对多
    • 描述:一个订单可以有多个状态历史记录
    • 外键order_status_history.orderId -> orders.id
  10. orders 和 payments

    • 关系:一对多
    • 描述:一个订单可以有多个支付记录(如多次支付尝试)
    • 外键payments.orderId -> orders.id
  11. orders 和 refunds

    • 关系:一对多
    • 描述:一个订单可以有多个退款记录
    • 外键refunds.orderId -> orders.id
  12. order_items 和 refunds

    • 关系:一对多
    • 描述:一个订单项可以有多个退款记录
    • 外键refunds.orderItemId -> order_items.id
  13. shops 和 shop_ratings

    • 关系:一对多
    • 描述:一个店铺可以有多个评价
    • 外键shop_ratings.shopId -> shops.id
  14. users 和 shop_ratings

    • 关系:一对多
    • 描述:一个用户可以对多个店铺进行评价
    • 外键shop_ratings.userId -> users.id
  15. orders 和 shop_ratings

    • 关系:一对一
    • 描述:一个订单对应一个店铺评价
    • 外键shop_ratings.orderId -> orders.id
  16. product_categories 和 products

    • 关系:一对多
    • 描述:一个商品分类可以包含多个商品
    • 外键products.categoryId -> product_categories.id
  17. shop_categories 和 shops

    • 关系:一对多
    • 描述:一个店铺分类可以包含多个店铺
    • 外键shops.categoryId -> shop_categories.id
  18. product_categories 和 product_attributes

    • 关系:一对多
    • 描述:一个商品分类可以有多个属性
    • 外键product_attributes.categoryId -> product_categories.id
  19. products 和 product_attribute_values

    • 关系:一对多
    • 描述:一个商品可以有多个属性值
    • 外键product_attribute_values.productId -> products.id
  20. product_attributes 和 product_attribute_values

    • 关系:一对多
    • 描述:一个属性可以有多个值
    • 外键product_attribute_values.attributeId -> product_attributes.id

多对多关系

  1. users 和 roles

    • 关系:多对多
    • 描述:一个用户可以有多个角色,一个角色可以分配给多个用户
    • 关联表user_roles (userId, roleId)
  2. roles 和 permissions

    • 关系:多对多
    • 描述:一个角色可以有多个权限,一个权限可以分配给多个角色
    • 关联表role_permissions (roleId, permissionId)

自关联关系

  1. shop_categories 和 shop_categories

    • 关系:自关联(一对多)
    • 描述:店铺分类的父子关系
    • 外键shop_categories.parentId -> shop_categories.id
  2. product_categories 和 product_categories

    • 关系:自关联(一对多)
    • 描述:商品分类的父子关系
    • 外键product_categories.parentId -> product_categories.id