16 KiB
16 KiB
数据库表结构与关系文档
目录
用户相关表
users表
| 字段名 | 类型 | 描述 | 备注 |
|---|---|---|---|
| id | BIGINT | 用户ID | 主键,自增 |
| username | VARCHAR | 用户名 | 唯一 |
| password | VARCHAR | 密码 | 加密存储 |
| 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 | INTEGER | 性别 | |
| birthday | DATE | 生日 | |
| address | 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表 |
| logo | VARCHAR | 店铺Logo | |
| coverImage | VARCHAR | 店铺封面图 | |
| description | VARCHAR | 店铺描述 | |
| status | INTEGER | 状态 | 0:待审核, 1:正常, 2:封禁 |
| createdAt | DATE | 创建时间 | |
| updatedAt | DATE | 更新时间 |
shop_categories表
| 字段名 | 类型 | 描述 | 备注 |
|---|---|---|---|
| id | BIGINT | 分类ID | 主键,自增 |
| categoryName | VARCHAR | 分类名称 | |
| parentId | BIGINT | 父分类ID | |
| level | INTEGER | 分类级别 | |
| 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表 |
| brand | VARCHAR | 品牌 | |
| description | VARCHAR | 商品描述 | |
| mainImage | VARCHAR | 主图URL | |
| price | DECIMAL | 价格 | |
| originalPrice | DECIMAL | 原价 | |
| stock | INTEGER | 库存 | |
| sales | INTEGER | 销量 | |
| status | INTEGER | 状态 | 0:下架, 1:上架 |
| createdAt | DATE | 创建时间 | |
| updatedAt | DATE | 更新时间 |
product_categories表
| 字段名 | 类型 | 描述 | 备注 |
|---|---|---|---|
| id | BIGINT | 分类ID | 主键,自增 |
| categoryName | VARCHAR | 分类名称 | |
| parentId | BIGINT | 父分类ID | |
| level | INTEGER | 分类级别 | |
| 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 | 排序 | |
| status | INTEGER | 状态 | 0:禁用, 1:启用 |
| 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 | 更新时间 |
表与表之间的关系
一对一关系
- users 和 user_details
- 关系:一对一
- 描述:每个用户只有一个详细信息记录
- 外键:user_details.userId -> users.id
一对多关系
-
users 和 shops
- 关系:一对多
- 描述:一个用户可以创建多个店铺(店主)
- 外键:shops.userId -> users.id
-
shops 和 products
- 关系:一对多
- 描述:一个店铺可以有多个商品
- 外键:products.shopId -> shops.id
-
users 和 orders
- 关系:一对多
- 描述:一个用户可以有多个订单
- 外键:orders.userId -> users.id
-
shops 和 orders
- 关系:一对多
- 描述:一个店铺可以有多个订单
- 外键:orders.shopId -> shops.id
-
orders 和 order_items
- 关系:一对多
- 描述:一个订单可以包含多个商品项
- 外键:order_items.orderId -> orders.id
-
products 和 product_images
- 关系:一对多
- 描述:一个商品可以有多个图片
- 外键:product_images.productId -> products.id
-
products 和 product_skus
- 关系:一对多
- 描述:一个商品可以有多个SKU
- 外键:product_skus.productId -> products.id
-
product_skus 和 product_inventories
- 关系:一对一/一对多(实际为一对一)
- 描述:一个SKU对应一个库存记录
- 外键:product_inventories.skuId -> product_skus.id
-
orders 和 order_status_history
- 关系:一对多
- 描述:一个订单可以有多个状态历史记录
- 外键:order_status_history.orderId -> orders.id
-
orders 和 payments
- 关系:一对多
- 描述:一个订单可以有多个支付记录(如多次支付尝试)
- 外键:payments.orderId -> orders.id
-
orders 和 refunds
- 关系:一对多
- 描述:一个订单可以有多个退款记录
- 外键:refunds.orderId -> orders.id
-
order_items 和 refunds
- 关系:一对多
- 描述:一个订单项可以有多个退款记录
- 外键:refunds.orderItemId -> order_items.id
-
shops 和 shop_ratings
- 关系:一对多
- 描述:一个店铺可以有多个评价
- 外键:shop_ratings.shopId -> shops.id
-
users 和 shop_ratings
- 关系:一对多
- 描述:一个用户可以对多个店铺进行评价
- 外键:shop_ratings.userId -> users.id
-
orders 和 shop_ratings
- 关系:一对一
- 描述:一个订单对应一个店铺评价
- 外键:shop_ratings.orderId -> orders.id
-
product_categories 和 products
- 关系:一对多
- 描述:一个商品分类可以包含多个商品
- 外键:products.categoryId -> product_categories.id
-
shop_categories 和 shops
- 关系:一对多
- 描述:一个店铺分类可以包含多个店铺
- 外键:shops.categoryId -> shop_categories.id
-
product_categories 和 product_attributes
- 关系:一对多
- 描述:一个商品分类可以有多个属性
- 外键:product_attributes.categoryId -> product_categories.id
-
products 和 product_attribute_values
- 关系:一对多
- 描述:一个商品可以有多个属性值
- 外键:product_attribute_values.productId -> products.id
-
product_attributes 和 product_attribute_values
- 关系:一对多
- 描述:一个属性可以有多个值
- 外键:product_attribute_values.attributeId -> product_attributes.id
多对多关系
-
users 和 roles
- 关系:多对多
- 描述:一个用户可以有多个角色,一个角色可以分配给多个用户
- 关联表:user_roles (userId, roleId)
-
roles 和 permissions
- 关系:多对多
- 描述:一个角色可以有多个权限,一个权限可以分配给多个角色
- 关联表:role_permissions (roleId, permissionId)
自关联关系
-
shop_categories 和 shop_categories
- 关系:自关联(一对多)
- 描述:店铺分类的父子关系
- 外键:shop_categories.parentId -> shop_categories.id
-
product_categories 和 product_categories
- 关系:自关联(一对多)
- 描述:商品分类的父子关系
- 外键:product_categories.parentId -> product_categories.id