日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

论坛系统数据库设计

發布時間:2024/9/27 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 论坛系统数据库设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

論壇系統數據庫設計

數據庫SQL文件已被收錄于Gitee: 論壇系統數據庫設計資源下載

文章目錄

  • 論壇系統數據庫設計
  • 前言
  • 一、社區論壇是什么?
  • 二、設計表
    • 1.用戶表
    • 2.Token表
    • 3. 文章表
    • 4. 話題表
    • 5. 問題表
    • 6. 評論表
    • 7. 投票表
    • 8. 回答表
    • 9. 舉報表
    • 10. 話題關系對應表
    • 11. 通知表
    • 12. 私信表
    • 13. 關注關系表
    • 14. 圖片表
    • 15. 設置表
    • 16. 緩存表
  • 總結


前言

數據庫設計尤為重要,因為他是后面系統開發的基石,義務和數據庫是分不開的。


一、社區論壇是什么?


1、社區論壇是一個網絡板塊,指不同的人圍繞同一主題引發的討論,如天涯社區。類似的名詞還有論壇、貼吧等。同時也是指固定的地理區域范圍內的社會成員以居住環境為主體,行使社會功能、創造社會規范物,與行政村同一等級的行政區域。
2、社區,最具活力的社區是互聯網最具知名度的綜合性社區,擁有龐大核心用戶群體,社區主題涵蓋女性、娛樂、汽車、體育、文化、生活、社會、時事、歷史、文學、情感、旅游、星座等各項領域。

二、設計表

1.用戶表

用戶表 重要字段: 用戶ID、用戶名、密碼、關注我的人數、我關注的人數、我關注的文章數、我關注的問題數、我關注的話題數、我發表的文章數量、我發表的問題數量、我發表的回答數量、未讀通知數、未讀私信數


CREATE TABLE `mc_user` (`user_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用戶ID',`username` varchar(20) NOT NULL COMMENT '用戶名',`email` varchar(320) NOT NULL COMMENT '郵箱',`avatar` varchar(50) DEFAULT NULL COMMENT '頭像token',`cover` varchar(50) DEFAULT NULL COMMENT '封面圖片token',`password` varchar(255) NOT NULL COMMENT '密碼',`create_ip` varchar(80) DEFAULT NULL COMMENT '注冊IP',`create_location` varchar(100) DEFAULT NULL COMMENT '注冊地址',`last_login_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最后登錄時間',`last_login_ip` varchar(80) DEFAULT NULL COMMENT '最后登陸IP',`last_login_location` varchar(100) DEFAULT NULL COMMENT '最后登錄地址',`follower_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '關注我的人數',`followee_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '我關注的人數',`following_article_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '我關注的文章數',`following_question_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '我關注的問題數',`following_topic_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '我關注的話題數',`article_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '我發表的文章數量',`question_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '我發表的問題數量',`answer_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '我發表的回答數量',`notification_unread` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '未讀通知數',`inbox_unread` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '未讀私信數',`headline` varchar(40) DEFAULT NULL COMMENT '一句話介紹',`bio` varchar(160) DEFAULT NULL COMMENT '個人簡介',`blog` varchar(255) DEFAULT NULL COMMENT '個人主頁',`company` varchar(255) DEFAULT NULL COMMENT '公司名稱',`location` varchar(255) DEFAULT NULL COMMENT '地址',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '注冊時間',`update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '更新時間',`disable_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '禁用時間',PRIMARY KEY (`user_id`),KEY `user_name` (`username`),KEY `email` (`email`),KEY `follower_count` (`follower_count`),KEY `create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶表';

2.Token表

token表用來保存登錄用戶的登錄信息,有一個過期過期時間。一般都把用戶的token保存到redis,設置過期時間自動刪除對應的key。
重要字段: token字符串、用戶ID、過期時間


CREATE TABLE `mc_token` (`token` varchar(50) NOT NULL DEFAULT '' COMMENT 'token 字符串',`user_id` int(11) unsigned NOT NULL COMMENT '用戶ID',`device` varchar(600) NOT NULL DEFAULT '' COMMENT '登陸設備,瀏覽器 UA 等信息',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '創建時間',`update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '更新時間',`expire_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '過期時間',PRIMARY KEY (`token`),KEY `user_id` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶TOKEN';

3. 文章表

文章表 重要字段:用戶ID、評論數量、關注者數量、投票數、贊成票數、反對票數


CREATE TABLE `mc_article` (`article_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '文章ID',`user_id` int(11) unsigned NOT NULL COMMENT '用戶ID',`title` varchar(80) NOT NULL COMMENT '標題',`content_markdown` text COMMENT '原始的正文內容',`content_rendered` text COMMENT '過濾渲染后的正文內容',`comment_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '評論數量',`follower_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '關注者數量',`vote_count` int(11) NOT NULL DEFAULT '0' COMMENT '投票數,贊成票-反對票,可以為負數',`vote_up_count` int(11) NOT NULL DEFAULT '0' COMMENT '贊成票總數',`vote_down_count` int(11) NOT NULL DEFAULT '0' COMMENT '反對票總數',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '創建時間',`update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '更新時間',`delete_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '刪除時間',PRIMARY KEY (`article_id`),KEY `user_id` (`user_id`),KEY `create_time` (`create_time`),KEY `vote_count` (`vote_count`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章表';

4. 話題表

話題表 重要字段:話題名稱、話題描述、文章數量、問題數量、關注者數量


CREATE TABLE `mc_topic` (`topic_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '話題ID',`name` varchar(20) NOT NULL DEFAULT '' COMMENT '話題名稱',`cover` varchar(50) DEFAULT NULL COMMENT '封面圖片token',`description` varchar(1000) NOT NULL DEFAULT '' COMMENT '話題描述',`article_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '文章數量',`question_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '問題數量',`follower_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '關注者數量',`delete_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '刪除時間',PRIMARY KEY (`topic_id`),KEY `name` (`name`),KEY `follower_count` (`follower_count`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='話題表';

5. 問題表

問題表 重要字段:用戶ID、標題、內容、評論數量、回答數量、關注者數量、投票數、贊成票數、反對票數


CREATE TABLE `mc_question` (`question_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '問題ID',`user_id` int(11) unsigned NOT NULL COMMENT '用戶ID',`title` varchar(80) NOT NULL COMMENT '標題',`content_markdown` text COMMENT '原始的正文內容',`content_rendered` text COMMENT '過濾渲染后的正文內容',`comment_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '評論數量',`answer_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '回答數量',`follower_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '關注者數量',`vote_count` int(11) NOT NULL DEFAULT '0' COMMENT '投票數,贊成票-反對票,可以為負數',`vote_up_count` int(11) NOT NULL DEFAULT '0' COMMENT '贊成票總數',`vote_down_count` int(11) NOT NULL DEFAULT '0' COMMENT '反對票總數',`last_answer_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最后回答時間',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '創建時間',`update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '更新時間',`delete_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '刪除時間',PRIMARY KEY (`question_id`),KEY `user_id` (`user_id`),KEY `create_time` (`create_time`),KEY `update_time` (`update_time`),KEY `vote_count` (`vote_count`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='問題表';

6. 評論表

評論表 重要字段:評論目標ID、用戶ID、回復數量、投票數、反對票數、贊成票數、評論的內容


CREATE TABLE `mc_comment` (`comment_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '回答評論ID',`commentable_id` int(11) unsigned NOT NULL COMMENT '評論目標的ID',`commentable_type` char(10) NOT NULL COMMENT '評論目標類型:article、question、answer、comment',`user_id` int(11) unsigned NOT NULL COMMENT '用戶ID',`content` text NOT NULL COMMENT '原始正文內容',`reply_count` int(11) NOT NULL DEFAULT '0' COMMENT '回復數量',`vote_count` int(11) NOT NULL DEFAULT '0' COMMENT '投票數,贊成票-反對票,可以為負數',`vote_up_count` int(11) NOT NULL DEFAULT '0' COMMENT '贊成票總數',`vote_down_count` int(11) NOT NULL DEFAULT '0' COMMENT '反對票總數',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '創建時間',`update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '更新時間',`delete_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '刪除時間',PRIMARY KEY (`comment_id`),KEY `user_id` (`user_id`),KEY `commentable_id` (`commentable_id`),KEY `create_time` (`create_time`),KEY `vote_count` (`vote_count`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='回答評論表';

7. 投票表

投票表 重要字段:用戶ID、投票目標ID、投票類型(贊成還是反對)、投票類型


CREATE TABLE `mc_vote` (`user_id` int(11) unsigned NOT NULL COMMENT '用戶ID',`votable_id` int(11) unsigned NOT NULL COMMENT '投票目標ID',`votable_type` char(10) NOT NULL COMMENT '投票目標類型 question、answer、article、comment',`type` char(10) NOT NULL COMMENT '投票類型 up、down',`create_time` int(10) unsigned NOT NULL COMMENT '投票時間',KEY `user_id` (`user_id`),KEY `voteable_id` (`votable_id`),KEY `create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

8. 回答表

回答表 重要字段: 問題ID、用戶ID、回答的內容、評論數量、投票數、贊成票數、反對票數


CREATE TABLE `mc_answer` (`answer_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '回答ID',`question_id` int(11) unsigned NOT NULL COMMENT '問題ID',`user_id` int(11) unsigned NOT NULL COMMENT '用戶ID',`content_markdown` text NOT NULL COMMENT '原始的正文內容',`content_rendered` text NOT NULL COMMENT '過濾渲染后的正文內容',`comment_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '評論數量',`vote_count` int(11) NOT NULL DEFAULT '0' COMMENT '投票數,贊成票-反對票,可以為負數',`vote_up_count` int(11) NOT NULL DEFAULT '0' COMMENT '贊成票總數',`vote_down_count` int(11) NOT NULL DEFAULT '0' COMMENT '反對票總數',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '創建時間',`update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '更新時間',`delete_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '刪除時間',PRIMARY KEY (`answer_id`),KEY `question_id` (`question_id`),KEY `user_id` (`user_id`),KEY `vote_count` (`vote_count`),KEY `create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='回答表';

9. 舉報表

舉報表 重要字段: 舉報目標ID、用戶ID、舉報目標類型、舉報原因


CREATE TABLE `mc_report` (`report_id` int(11) unsigned NOT NULL AUTO_INCREMENT,`reportable_id` int(11) unsigned NOT NULL COMMENT '舉報目標ID',`reportable_type` char(10) NOT NULL COMMENT '舉報目標類型:question、article、answer、comment、user',`user_id` int(11) unsigned NOT NULL COMMENT '用戶ID',`reason` varchar(200) NOT NULL COMMENT '舉報原因',`create_time` int(11) unsigned NOT NULL COMMENT '舉報時間',PRIMARY KEY (`report_id`),KEY `reportable_id` (`reportable_id`),KEY `reportable_type` (`reportable_type`),KEY `create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='舉報';

10. 話題關系對應表


CREATE TABLE `mc_topicable` (`topic_id` int(11) unsigned NOT NULL COMMENT '話題ID',`topicable_id` int(11) unsigned NOT NULL COMMENT '話題關系對應的ID',`topicable_type` char(10) NOT NULL COMMENT '話題關系對應的類型 question、article',`create_time` int(10) unsigned NOT NULL DEFAULT '0',KEY `topic_id` (`topic_id`),KEY `topicable_id` (`topicable_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

11. 通知表


CREATE TABLE `mc_notification` (`notification_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '通知ID',`receiver_id` int(11) unsigned NOT NULL COMMENT '接收者ID',`sender_id` int(11) NOT NULL COMMENT '發送者ID',`type` varchar(40) NOT NULL COMMENT '消息類型:\r\nquestion_answered, \r\nquestion_commented, \r\nquestion_deleted, \r\narticle_commented, \r\narticle_deleted, \r\nanswer_commented, \r\nanswer_deleted, \r\ncomment_replied, \r\ncomment_deleted',`article_id` int(11) NOT NULL COMMENT '文章ID',`question_id` int(11) NOT NULL COMMENT '提問ID',`answer_id` int(11) NOT NULL COMMENT '回答ID',`comment_id` int(11) NOT NULL COMMENT '評論ID',`reply_id` int(11) NOT NULL COMMENT '回復ID',`content_deleted` text NOT NULL COMMENT '被刪除的內容的備份',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '發送時間',`read_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '閱讀時間',PRIMARY KEY (`notification_id`),KEY `receiver_id` (`receiver_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通知表';

12. 私信表

私信表 重要字段: 接收者ID、發送者ID、私信內容


CREATE TABLE `mc_inbox` (`inbox_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '私信ID',`receiver_id` int(11) unsigned NOT NULL COMMENT '接收者ID',`sender_id` int(11) unsigned NOT NULL COMMENT '發送者ID',`content_markdown` text NOT NULL COMMENT '原始的私信內容',`content_rendered` text NOT NULL COMMENT '過濾渲染后的私信內容',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '發送時間',`read_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '閱讀時間',PRIMARY KEY (`inbox_id`),KEY `receiver_id` (`receiver_id`),KEY `sender_id` (`sender_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='私信表';

13. 關注關系表

關注關系表 重要字段:用戶ID、關注目標ID、關注目標類型


CREATE TABLE `mc_follow` (`user_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用戶ID',`followable_id` int(11) unsigned NOT NULL COMMENT '關注目標的ID',`followable_type` char(10) NOT NULL COMMENT '關注目標類型 user、question、article、topic',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '關注時間',KEY `followable_id` (`followable_id`),KEY `user_id` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章關注關系表';

14. 圖片表


CREATE TABLE `mc_image` (`key` varchar(50) NOT NULL COMMENT '圖片鍵名',`filename` varchar(255) NOT NULL COMMENT '原始文件名',`width` int(5) unsigned NOT NULL DEFAULT '0' COMMENT '原始圖片寬度',`height` int(5) unsigned NOT NULL DEFAULT '0' COMMENT '原始圖片高度',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '上傳時間',`item_type` char(10) DEFAULT NULL COMMENT '關聯類型:question、answer、article',`item_id` int(11) NOT NULL DEFAULT '0' COMMENT '關聯ID',`user_id` int(11) NOT NULL COMMENT '用戶ID',PRIMARY KEY (`key`),KEY `create_time` (`create_time`),KEY `item_id` (`item_id`),KEY `user_id` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

15. 設置表


CREATE TABLE `mc_option` (`name` varchar(40) NOT NULL DEFAULT '' COMMENT '字段名',`value` text NOT NULL COMMENT '字段值',PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='設置表';

16. 緩存表


CREATE TABLE `mc_cache` (`name` varchar(180) NOT NULL,`value` text NOT NULL,`create_time` int(10) unsigned DEFAULT NULL COMMENT '創建時間',`life_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '有效時間',PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='緩存表';

總結

一個簡易版的論壇系統數據庫設計到此結束。有問題評論區留言。

總結

以上是生活随笔為你收集整理的论坛系统数据库设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。