测试

5 阅读2分钟

雨洗月亮论坛系统ER图

以下是雨洗月亮论坛系统的实体关系图,展示了系统中主要实体及其关系。

erDiagram
    USER {
        bigint user_id PK
        varchar username
        varchar password
        varchar email
        tinyint gender
        varchar icon_url
        tinyint status
        tinyint role
        timestamp create_time
        timestamp update_time
    }
    
    COMMUNITY {
        int community_id PK
        bigint author_id FK
        tinyint status
        int user_num
        int post_num
        varchar icon_url
        varchar community_name
        varchar introduction 
        timestamp create_time
        timestamp update_time
    }
    
    POST {
        bigint post_id PK
        varchar title
        varchar content
        bigint author_id FK
        bigint community_id FK
        tinyint status
        int vote_num
        int view_num
        int comment_num
        timestamp create_time
        timestamp update_time
        timestamp deleted_time
    }
    
    COMMENT {
        bigint comment_id PK
        text content
        bigint post_id FK
        bigint author_id FK
        bigint parent_id
        tinyint status
        int vote_num
        timestamp create_time
        timestamp update_time
    }
    
    VOTE {
        bigint id PK
        bigint post_id FK
        bigint comment_id FK
        bigint user_id FK
        tinyint vote_type
        tinyint status
        timestamp create_time
    }
    
    AI_MODEL {
        bigint model_id PK
        varchar name
        varchar description
        varchar icon_url
        int power 
        tinyint enable
        int max_tokens
        int max_context
        varchar api_key
        varchar model_type
        tinyint status
        timestamp create_time
    }
    
    CHAT_HISTORY {
        bigint history_id PK
        bigint user_id FK
        bigint model_id FK
        tinyint history_type
        tinyint user_context
        int tokens
        text content
        varchar message_type
        timestamp create_time
    }
    
    USER ||--o{ POST : "发布"
    USER ||--o{ COMMENT : "评论"
    USER ||--o{ VOTE : "投票"
    USER ||--o{ CHAT_HISTORY : "聊天"
    
    COMMUNITY ||--o{ POST : "包含"
    
    POST ||--o{ COMMENT : "拥有"
    POST ||--o{ VOTE : "获得"
    
    COMMENT ||--o{ COMMENT : "回复"
    
    AI_MODEL ||--o{ CHAT_HISTORY : "生成"

实体说明

用户(USER)

  • 存储用户基本信息,包括用户ID、用户名、密码、邮箱、性别等
  • 主键:user_id

社区(COMMUNITY)

  • 存储社区信息,包括社区ID、社区名称、介绍等
  • 主键:community_id

帖子(POST)

  • 存储帖子内容,包括帖子ID、标题、内容、作者ID、所属社区ID、投票数等
  • 主键:post_id
  • 外键:author_id 关联 USER.user_id
  • 外键:community_id 关联 COMMUNITY.community_id

评论(COMMENT)

  • 存储评论信息,包括评论ID、内容、所属帖子ID、作者ID、父评论ID等
  • 主键:comment_id
  • 外键:post_id 关联 POST.post_id
  • 外键:author_id 关联 USER.user_id
  • 外键:parent_id 关联 COMMENT.comment_id(自引用,用于回复评论)

投票(VOTE)

  • 存储用户对帖子的投票信息,包括投票ID、帖子ID、用户ID、投票类型等
  • 主键:id
  • 外键:post_id 关联 POST.post_id
  • 外键:user_id 关联 USER.user_id

AI模型(AI_MODEL)

  • 存储AI模型信息,包括模型ID、模型名称、API密钥、模型类型等
  • 主键:model_id

聊天历史(CHAT_HISTORY)

  • 存储用户与AI的聊天记录,包括聊天ID、用户ID、内容、消息类型等
  • 主键:chat_id
  • 外键:user_id 关联 USER.user_id

关系说明

  1. 一个用户可以发布多个帖子(一对多)
  2. 一个用户可以发表多条评论(一对多)
  3. 一个用户可以对多个帖子进行投票(一对多)
  4. 一个用户可以有多条聊天记录(一对多)
  5. 一个社区可以包含多个帖子(一对多)
  6. 一个帖子可以有多条评论(一对多)
  7. 一个帖子可以获得多个投票(一对多)
  8. 一条评论可以有多个回复评论(自引用一对多)
  9. 一个AI模型可以生成多条聊天记录(一对多)