# 数据库关系图 下面使用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语法渲染