95 lines
4.0 KiB
Markdown
95 lines
4.0 KiB
Markdown
# 数据库关系图(简洁版)
|
||
|
||
下面是使用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--||` : 自关联关系
|
||
|
||
此简洁版关系图重点突出了系统各模块之间的核心关联,有助于理解整个数据库的设计架构。 |