467 lines
16 KiB
Markdown
467 lines
16 KiB
Markdown
# 数据库表结构与关系文档
|
||
|
||
## 目录
|
||
|
||
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 | 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 | 更新时间 | |
|
||
|
||
## 表与表之间的关系
|
||
|
||
### 一对一关系
|
||
|
||
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 |