Files
Inbox/Go项目实战/01_数据模型建立/Mermaid ER 图.md
2025-12-11 07:24:36 +08:00

2.1 KiB

tags, date created, date modified
tags date created date modified
星期日, 十二月 7日 2025, 1:31:36 下午 星期日, 十二月 7日 2025, 1:32:46 下午
erDiagram
    users ||--o{ user_roles : "assigns"
    roles ||--o{ user_roles : "assigned to"
    roles ||--o{ role_permissions : "grants"
    permissions ||--o{ role_permissions : "granted to"
    
    users {
        bigint id PK "主键 (BigSerial)"
        string username "用户名 (唯一)"
        string password_hash "哈希密码 (Argon2/Bcrypt)"
        string email "邮箱 (可选,唯一)"
        string nickname "昵称"
        string avatar_url "头像URL"
        text bio "简介"
        string status "状态 (active/inactive/banned)"
        timestamptz created_at "创建时间"
        timestamptz updated_at "更新时间"
        timestamptz deleted_at "软删除时间"
    }
    
    roles {
        bigint id PK "主键 (BigSerial)"
        string code "角色代码 (admin/editor/user)"
        string name "角色名称"
        text description "角色描述"
        boolean is_system "系统角色(不可删除)"
        timestamptz created_at "创建时间"
        timestamptz updated_at "更新时间"
        timestamptz deleted_at "软删除时间"
    }
    
    permissions {
        bigint id PK "主键 (BigSerial)"
        string code "权限代码 (module:action:scope)"
        string name "权限名称"
        text description "权限描述"
        string category "权限分类"
        timestamptz created_at "创建时间"
        timestamptz updated_at "更新时间"
        timestamptz deleted_at "软删除时间"
    }
    
    user_roles {
        bigint id PK "主键 (BigSerial)"
        bigint user_id FK "用户ID"
        bigint role_id FK "角色ID"
        timestamptz created_at "关联时间"
        timestamptz updated_at "更新时间"
    }
    
    role_permissions {
        bigint id PK "主键 (BigSerial)"
        bigint role_id FK "角色ID"
        bigint permission_id FK "权限ID"
        timestamptz created_at "关联时间"
        timestamptz updated_at "更新时间"
    }