feat: 初始化后端项目基础架构
添加项目基础配置文件和目录结构 实现用户、角色、权限等核心模块的实体类、Mapper接口和服务层 配置数据库连接和MyBatis-Plus支持 添加统一响应格式和异常处理机制
This commit is contained in:
268
doc/数据库关系图.md
Normal file
268
doc/数据库关系图.md
Normal file
@@ -0,0 +1,268 @@
|
||||
# 数据库关系图
|
||||
|
||||
下面使用Mermaid语法生成的数据库实体关系图(ER图),展示了系统中各个表之间的关联关系:
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
%% 用户相关表
|
||||
users ||--o{ user_details : has
|
||||
users ||--o{ shops : owns
|
||||
users ||--o{ orders : places
|
||||
users ||--o{ payments : makes
|
||||
users ||--o{ refunds : requests
|
||||
users ||--o{ shop_ratings : writes
|
||||
users ||--o{ user_roles : assigned_to
|
||||
|
||||
%% 权限相关表
|
||||
roles ||--o{ user_roles : has
|
||||
roles ||--o{ role_permissions : contains
|
||||
permissions ||--o{ role_permissions : included_in
|
||||
|
||||
%% 店铺相关表
|
||||
shops ||--o{ products : sells
|
||||
shops ||--o{ orders : receives
|
||||
shops ||--o{ refunds : processes
|
||||
shops ||--o{ shop_ratings : receives
|
||||
shop_categories ||--o{ shops : categorizes
|
||||
shop_categories }o--|| shop_categories : parent
|
||||
|
||||
%% 商品相关表
|
||||
products ||--o{ product_images : has
|
||||
products ||--o{ product_skus : contains
|
||||
products ||--o{ product_attribute_values : has
|
||||
products ||--o{ order_items : included_in
|
||||
product_categories ||--o{ products : categorizes
|
||||
product_categories }o--|| product_categories : parent
|
||||
product_categories ||--o{ product_attributes : defines
|
||||
product_attributes ||--o{ product_attribute_values : has
|
||||
product_skus ||--o{ product_inventories : manages
|
||||
product_skus ||--o{ order_items : selected_in
|
||||
|
||||
%% 订单相关表
|
||||
orders ||--o{ order_items : contains
|
||||
orders ||--o{ order_status_history : tracks
|
||||
orders ||--o{ payments : related_to
|
||||
orders ||--o{ refunds : triggers
|
||||
orders ||--o{ shop_ratings : based_on
|
||||
|
||||
%% 支付与退款相关表
|
||||
payments ||--o{ refunds : reversed_by
|
||||
order_items ||--o{ refunds : includes
|
||||
|
||||
%% 表定义
|
||||
users {
|
||||
BIGINT id PK
|
||||
VARCHAR username
|
||||
VARCHAR password
|
||||
VARCHAR email
|
||||
VARCHAR phone
|
||||
INTEGER status
|
||||
}
|
||||
|
||||
user_details {
|
||||
BIGINT id PK
|
||||
BIGINT userId FK
|
||||
VARCHAR realName
|
||||
VARCHAR idCard
|
||||
INTEGER gender
|
||||
}
|
||||
|
||||
roles {
|
||||
BIGINT id PK
|
||||
VARCHAR roleName
|
||||
INTEGER roleType
|
||||
INTEGER status
|
||||
}
|
||||
|
||||
permissions {
|
||||
BIGINT id PK
|
||||
VARCHAR permissionName
|
||||
VARCHAR permissionCode
|
||||
INTEGER status
|
||||
}
|
||||
|
||||
user_roles {
|
||||
BIGINT id PK
|
||||
BIGINT userId FK
|
||||
BIGINT roleId FK
|
||||
}
|
||||
|
||||
role_permissions {
|
||||
BIGINT id PK
|
||||
BIGINT roleId FK
|
||||
BIGINT permissionId FK
|
||||
}
|
||||
|
||||
shops {
|
||||
BIGINT id PK
|
||||
VARCHAR shopName
|
||||
BIGINT userId FK
|
||||
BIGINT categoryId FK
|
||||
INTEGER status
|
||||
}
|
||||
|
||||
shop_categories {
|
||||
BIGINT id PK
|
||||
VARCHAR categoryName
|
||||
BIGINT parentId FK
|
||||
INTEGER level
|
||||
INTEGER status
|
||||
}
|
||||
|
||||
products {
|
||||
BIGINT id PK
|
||||
VARCHAR productName
|
||||
BIGINT shopId FK
|
||||
BIGINT categoryId FK
|
||||
DECIMAL price
|
||||
INTEGER stock
|
||||
INTEGER status
|
||||
}
|
||||
|
||||
product_categories {
|
||||
BIGINT id PK
|
||||
VARCHAR categoryName
|
||||
BIGINT parentId FK
|
||||
INTEGER level
|
||||
INTEGER status
|
||||
}
|
||||
|
||||
product_attributes {
|
||||
BIGINT id PK
|
||||
VARCHAR attributeName
|
||||
BIGINT categoryId FK
|
||||
INTEGER attributeType
|
||||
INTEGER status
|
||||
}
|
||||
|
||||
product_attribute_values {
|
||||
BIGINT id PK
|
||||
BIGINT productId FK
|
||||
BIGINT attributeId FK
|
||||
VARCHAR attributeValue
|
||||
}
|
||||
|
||||
product_images {
|
||||
BIGINT id PK
|
||||
BIGINT productId FK
|
||||
VARCHAR imageUrl
|
||||
INTEGER isMain
|
||||
}
|
||||
|
||||
product_skus {
|
||||
BIGINT id PK
|
||||
BIGINT productId FK
|
||||
VARCHAR skuCode
|
||||
DECIMAL price
|
||||
INTEGER stock
|
||||
INTEGER status
|
||||
}
|
||||
|
||||
product_inventories {
|
||||
BIGINT id PK
|
||||
BIGINT skuId FK
|
||||
INTEGER currentStock
|
||||
INTEGER safetyStock
|
||||
INTEGER lockStock
|
||||
}
|
||||
|
||||
orders {
|
||||
BIGINT id PK
|
||||
VARCHAR orderNo
|
||||
BIGINT userId FK
|
||||
BIGINT shopId FK
|
||||
DECIMAL totalAmount
|
||||
INTEGER orderStatus
|
||||
}
|
||||
|
||||
order_items {
|
||||
BIGINT id PK
|
||||
BIGINT orderId FK
|
||||
BIGINT productId FK
|
||||
BIGINT skuId FK
|
||||
DECIMAL price
|
||||
INTEGER quantity
|
||||
INTEGER itemStatus
|
||||
}
|
||||
|
||||
order_status_history {
|
||||
BIGINT id PK
|
||||
BIGINT orderId FK
|
||||
INTEGER previousStatus
|
||||
INTEGER currentStatus
|
||||
}
|
||||
|
||||
payments {
|
||||
BIGINT id PK
|
||||
VARCHAR paymentNo
|
||||
BIGINT orderId FK
|
||||
BIGINT userId FK
|
||||
DECIMAL amount
|
||||
INTEGER paymentStatus
|
||||
}
|
||||
|
||||
refunds {
|
||||
BIGINT id PK
|
||||
VARCHAR refundNo
|
||||
BIGINT orderId FK
|
||||
BIGINT orderItemId FK
|
||||
BIGINT userId FK
|
||||
BIGINT shopId FK
|
||||
DECIMAL refundAmount
|
||||
INTEGER refundStatus
|
||||
}
|
||||
|
||||
shop_ratings {
|
||||
BIGINT id PK
|
||||
BIGINT shopId FK
|
||||
BIGINT userId FK
|
||||
BIGINT orderId FK
|
||||
INTEGER rating
|
||||
INTEGER status
|
||||
}
|
||||
```
|
||||
|
||||
## 关系说明
|
||||
|
||||
### 一对一关系
|
||||
- **users 和 user_details**:每个用户只有一个详细信息记录
|
||||
|
||||
### 一对多关系
|
||||
- **users 和 shops**:一个用户可以创建多个店铺
|
||||
- **shops 和 products**:一个店铺可以有多个商品
|
||||
- **users 和 orders**:一个用户可以有多个订单
|
||||
- **shops 和 orders**:一个店铺可以有多个订单
|
||||
- **orders 和 order_items**:一个订单可以包含多个商品项
|
||||
- **products 和 product_images**:一个商品可以有多个图片
|
||||
- **products 和 product_skus**:一个商品可以有多个SKU
|
||||
- **product_skus 和 product_inventories**:一个SKU对应一个库存记录
|
||||
- **orders 和 order_status_history**:一个订单可以有多个状态历史记录
|
||||
- **orders 和 payments**:一个订单可以有多个支付记录
|
||||
- **orders 和 refunds**:一个订单可以有多个退款记录
|
||||
- **order_items 和 refunds**:一个订单项可以有多个退款记录
|
||||
- **shops 和 shop_ratings**:一个店铺可以有多个评价
|
||||
- **users 和 shop_ratings**:一个用户可以对多个店铺进行评价
|
||||
- **orders 和 shop_ratings**:一个订单对应一个店铺评价
|
||||
|
||||
### 多对多关系
|
||||
- **users 和 roles**:通过user_roles表关联
|
||||
- **roles 和 permissions**:通过role_permissions表关联
|
||||
|
||||
### 自关联关系
|
||||
- **shop_categories 和 shop_categories**:店铺分类的父子关系
|
||||
- **product_categories 和 product_categories**:商品分类的父子关系
|
||||
|
||||
## 查看方法
|
||||
|
||||
要查看此关系图,可以使用支持Mermaid语法的工具或编辑器,例如:
|
||||
|
||||
1. **在线工具**:
|
||||
- [Mermaid Live Editor](https://mermaid.live/)
|
||||
- [Markdown Preview Enhanced](https://shd101wyy.github.io/markdown-preview-enhanced/#/)
|
||||
|
||||
2. **IDE插件**:
|
||||
- VS Code的Markdown Preview Enhanced插件
|
||||
- IntelliJ IDEA的Mermaid插件
|
||||
|
||||
3. **版本控制系统**:
|
||||
- GitHub、GitLab等平台已支持Mermaid语法渲染
|
||||
95
doc/数据库关系图_简洁版.md
Normal file
95
doc/数据库关系图_简洁版.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# 数据库关系图(简洁版)
|
||||
|
||||
下面是使用Mermaid语法生成的简洁版数据库实体关系图,重点突出表之间的关联关系:
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
%% 用户与权限系统
|
||||
users ||--o{ user_details : has
|
||||
users }o--o{ roles : "多对多" via user_roles
|
||||
roles }o--o{ permissions : "多对多" via role_permissions
|
||||
|
||||
%% 店铺系统
|
||||
users ||--o{ shops : owns
|
||||
shops ||--o{ products : sells
|
||||
shop_categories ||--o{ shops : categorizes
|
||||
shop_categories }o--|| shop_categories : parent-child
|
||||
|
||||
%% 商品系统
|
||||
products ||--o{ product_images : has
|
||||
products ||--o{ product_skus : contains
|
||||
products ||--o{ product_attribute_values : has_attributes
|
||||
product_categories ||--o{ products : categorizes
|
||||
product_categories }o--|| product_categories : parent-child
|
||||
product_categories ||--o{ product_attributes : defines
|
||||
product_attributes ||--o{ product_attribute_values : values
|
||||
product_skus ||--o{ product_inventories : inventory
|
||||
|
||||
%% 订单系统
|
||||
users ||--o{ orders : places
|
||||
shops ||--o{ orders : receives
|
||||
orders ||--o{ order_items : contains
|
||||
orders ||--o{ order_status_history : status_history
|
||||
order_items ||--o{ products : product
|
||||
order_items ||--o{ product_skus : sku
|
||||
|
||||
%% 支付与退款
|
||||
orders ||--o{ payments : payment
|
||||
orders ||--o{ refunds : refund
|
||||
order_items ||--o{ refunds : item_refund
|
||||
payments ||--o{ refunds : reversed_by
|
||||
|
||||
%% 评价系统
|
||||
users ||--o{ shop_ratings : reviews
|
||||
shops ||--o{ shop_ratings : rated
|
||||
orders ||--o{ shop_ratings : based_on
|
||||
```
|
||||
|
||||
## 核心表关系说明
|
||||
|
||||
### 1. 用户与权限模块
|
||||
- **用户-详情**:一对一关系,用户信息和用户详细资料分离存储
|
||||
- **用户-角色**:多对多关系,通过user_roles关联表实现
|
||||
- **角色-权限**:多对多关系,通过role_permissions关联表实现
|
||||
|
||||
### 2. 店铺模块
|
||||
- **用户-店铺**:一对多关系,一个用户可以创建多个店铺
|
||||
- **店铺分类-店铺**:一对多关系,一个分类包含多个店铺
|
||||
- **店铺分类自身**:自关联,支持多级分类结构
|
||||
|
||||
### 3. 商品模块
|
||||
- **店铺-商品**:一对多关系,一个店铺可以销售多个商品
|
||||
- **商品-图片**:一对多关系,一个商品可以有多张图片
|
||||
- **商品-SKU**:一对多关系,一个商品可以有多个SKU(库存单元)
|
||||
- **SKU-库存**:一对一关系,每个SKU对应一个库存记录
|
||||
- **商品-属性值**:一对多关系,一个商品可以有多个属性值
|
||||
- **商品分类-商品**:一对多关系,一个分类包含多个商品
|
||||
- **商品分类-属性**:一对多关系,一个分类定义多个属性
|
||||
- **属性-属性值**:一对多关系,一个属性可以有多个值
|
||||
|
||||
### 4. 订单模块
|
||||
- **用户-订单**:一对多关系,一个用户可以下多个订单
|
||||
- **店铺-订单**:一对多关系,一个店铺可以接收多个订单
|
||||
- **订单-订单项**:一对多关系,一个订单包含多个商品项
|
||||
- **订单项-商品/SKU**:多对一关系,订单项关联到具体的商品和SKU
|
||||
- **订单-状态历史**:一对多关系,记录订单状态变更历史
|
||||
|
||||
### 5. 支付与退款模块
|
||||
- **订单-支付**:一对多关系,一个订单可以有多次支付记录
|
||||
- **订单-退款**:一对多关系,一个订单可以有多次退款
|
||||
- **订单项-退款**:一对多关系,一个订单项可以有多次退款
|
||||
- **支付-退款**:一对多关系,一笔支付可以对应多笔退款
|
||||
|
||||
### 6. 评价模块
|
||||
- **用户-评价**:一对多关系,用户可以对多个店铺评价
|
||||
- **店铺-评价**:一对多关系,店铺可以收到多个评价
|
||||
- **订单-评价**:一对一关系,一个订单对应一个评价
|
||||
|
||||
## 表关系符号说明
|
||||
|
||||
- `||--o{` : 一对一关系(1:1)
|
||||
- `||--o{` : 一对多关系(1:N)
|
||||
- `}o--o{` : 多对多关系(N:M)
|
||||
- `}o--||` : 自关联关系
|
||||
|
||||
此简洁版关系图重点突出了系统各模块之间的核心关联,有助于理解整个数据库的设计架构。
|
||||
467
doc/数据库表结构与关系文档.md
Normal file
467
doc/数据库表结构与关系文档.md
Normal file
@@ -0,0 +1,467 @@
|
||||
# 数据库表结构与关系文档
|
||||
|
||||
## 目录
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user