schema.md 6.8 KB

一、执行模块

表设计

1. 用户表(users)

  • 存储用户的注册信息、登录凭证和基本资料。

    CREATE TABLE users (
    user_id INT PRIMARY KEY AUTO_INCREMENT,   -- 用户唯一标识
    username VARCHAR(50) NOT NULL,             -- 用户名
    password VARCHAR(255) NOT NULL,            -- 密码(加密存储)
    email VARCHAR(100) NOT NULL,               -- 用户邮箱
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,  -- 注册时间
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- 更新日期
    is_verified BOOLEAN DEFAULT FALSE,         -- 邮箱是否已验证
    profile_picture_url VARCHAR(255),           -- 头像URL
    bio TEXT                                    -- 用户简介
    );
    

2. 作品表(artworks)

  • 存储用户上传的作品信息。

    CREATE TABLE artworks (
    artwork_id INT PRIMARY KEY AUTO_INCREMENT,  -- 作品唯一标识
    user_id INT NOT NULL,                       -- 外键,关联用户表
    title VARCHAR(255) NOT NULL,                -- 作品标题
    description TEXT,                           -- 作品描述
    tags VARCHAR(255),                          -- 标签
    file_url VARCHAR(255) NOT NULL,             -- 作品文件URL
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 上传时间
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- 更新时间
    FOREIGN KEY (user_id) REFERENCES users(user_id) -- 关联用户表
    );
    

3. 社区帖子表(posts)

  • 存储社区中的帖子信息。

    CREATE TABLE posts (
    post_id INT PRIMARY KEY AUTO_INCREMENT,     -- 帖子唯一标识
    user_id INT NOT NULL,                       -- 外键,关联用户表
    title VARCHAR(255) NOT NULL,                -- 帖子标题
    content TEXT NOT NULL,                      -- 帖子内容
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 发帖时间
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- 更新时间
    FOREIGN KEY (user_id) REFERENCES users(user_id) -- 关联用户表
    );
    

4. 帖子评论表(comments)

  • 存储用户在社区中对帖子进行的评论。

    CREATE TABLE comments (
    comment_id INT PRIMARY KEY AUTO_INCREMENT,  -- 评论唯一标识
    post_id INT NOT NULL,                       -- 外键,关联帖子表
    user_id INT NOT NULL,                       -- 外键,关联用户表
    content TEXT NOT NULL,                      -- 评论内容
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 评论时间
    FOREIGN KEY (post_id) REFERENCES posts(post_id),   -- 关联帖子表
    FOREIGN KEY (user_id) REFERENCES users(user_id)    -- 关联用户表
    );
    

5. 帖子点赞表(post_likes)

  • 存储用户对帖子进行的点赞。

    CREATE TABLE post_likes (
    like_id INT PRIMARY KEY AUTO_INCREMENT,     -- 点赞唯一标识
    post_id INT NOT NULL,                       -- 外键,关联帖子表
    user_id INT NOT NULL,                       -- 外键,关联用户表
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 点赞时间
    FOREIGN KEY (post_id) REFERENCES posts(post_id),   -- 关联帖子表
    FOREIGN KEY (user_id) REFERENCES users(user_id)    -- 关联用户表
    );
    

6. 作品评论表(artwork_comments)

  • 存储用户对作品进行的评论。

    CREATE TABLE artwork_comments (
    comment_id INT PRIMARY KEY AUTO_INCREMENT,  -- 评论唯一标识
    artwork_id INT NOT NULL,                    -- 外键,关联作品表
    user_id INT NOT NULL,                       -- 外键,关联用户表
    content TEXT NOT NULL,                      -- 评论内容
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 评论时间
    FOREIGN KEY (artwork_id) REFERENCES artworks(artwork_id), -- 关联作品表
    FOREIGN KEY (user_id) REFERENCES users(user_id)    -- 关联用户表
    );
    

7. 作品点赞表(artwork_likes)

  • 存储用户对作品进行的点赞。

    CREATE TABLE artwork_likes (
    like_id INT PRIMARY KEY AUTO_INCREMENT,     -- 点赞唯一标识
    artwork_id INT NOT NULL,                    -- 外键,关联作品表
    user_id INT NOT NULL,                       -- 外键,关联用户表
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 点赞时间
    FOREIGN KEY (artwork_id) REFERENCES artworks(artwork_id), -- 关联作品表
    FOREIGN KEY (user_id) REFERENCES users(user_id)    -- 关联用户表
    );
    

8. AI 绘画建议表(ai_suggestions)

  • 存储AI生成的绘画建议。

    CREATE TABLE ai_suggestions (
    suggestion_id INT PRIMARY KEY AUTO_INCREMENT, -- 建议唯一标识
    artwork_id INT NOT NULL,                      -- 外键,关联作品表
    user_id INT NOT NULL,                         -- 外键,关联用户表
    suggestion TEXT NOT NULL,                     -- AI生成的建议内容
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 建议生成时间
    FOREIGN KEY (artwork_id) REFERENCES artworks(artwork_id), -- 关联作品表
    FOREIGN KEY (user_id) REFERENCES users(user_id)    -- 关联用户表
    );
    

9. AI 绘画参考表(ai_references)

  • 存储AI生成的绘画参考图像。

    CREATE TABLE ai_references (
    reference_id INT PRIMARY KEY AUTO_INCREMENT, -- 参考唯一标识
    user_id INT NOT NULL,                         -- 外键,关联用户表
    theme VARCHAR(255),                           -- 绘制的主题或风格
    image_url VARCHAR(255) NOT NULL,              -- 参考图像URL
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 参考生成时间
    FOREIGN KEY (user_id) REFERENCES users(user_id)    -- 关联用户表
    );
    

10. 用户邮件验证表(email_verifications)

  • 存储用户邮箱验证的临时数据。

    CREATE TABLE email_verifications (
    verification_id INT PRIMARY KEY AUTO_INCREMENT,  -- 验证记录唯一标识
    user_id INT NOT NULL,                            -- 外键,关联用户表
    verification_token VARCHAR(255) NOT NULL,        -- 验证码或token
    expiration TIMESTAMP NOT NULL,                   -- 过期时间
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,  -- 记录创建时间
    FOREIGN KEY (user_id) REFERENCES users(user_id) -- 关联用户表
    );
    

11. 用户活动日志表(user_activity_logs)

  • 记录用户的行为日志(如登录、发帖、点赞等)。

    CREATE TABLE user_activity_logs (
    log_id INT PRIMARY KEY AUTO_INCREMENT,         -- 日志唯一标识
    user_id INT NOT NULL,                          -- 外键,关联用户表
    action VARCHAR(255) NOT NULL,                  -- 用户行为(例如登录、发帖、点赞等)
    action_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 行为发生时间
    FOREIGN KEY (user_id) REFERENCES users(user_id) -- 关联用户表
    );