6.9 KiB
6.9 KiB
数据库关系图
下面使用Mermaid语法生成的数据库实体关系图(ER图),展示了系统中各个表之间的关联关系:
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语法的工具或编辑器,例如:
-
在线工具:
-
IDE插件:
- VS Code的Markdown Preview Enhanced插件
- IntelliJ IDEA的Mermaid插件
-
版本控制系统:
- GitHub、GitLab等平台已支持Mermaid语法渲染