分享一下我寫的企業博客項目的數據庫設計。
我數據庫有8個表,分別是:
admin(管理員表)、comments(評論表)、contact(用戶反饋表)、contents(博客表)、great(點贊信息表)、reply(回覆表)、sys_contice(系統通知表)、user(用戶表)
管理員表:admin
表字段 | 類型 | 註釋 |
---|---|---|
id | int | 主鍵 |
count | varchar | 賬號 |
password | varchar | 密碼 |
department | varchar | 部門 |
用戶表:user
表字段 | 類型 | 註釋 |
---|---|---|
id | int | 主鍵 |
name | varchar | 用戶名 |
photo | varchar | 用戶頭像 |
varchar | 用戶郵箱 | |
password | varchar | 用戶密碼 |
telephone | varchar | 用戶電話 |
博客表:contents
表字段 | 類型 | 註釋 |
---|---|---|
id | int | 主鍵 |
aid | int | 管理員id(外鍵——admin.id) |
admin_department | varchar | 管理員部門 |
date | date | 時間 |
title | varchar | 標題 |
content | longtext | 內容 |
pic | varchar | 博客中第一張圖片的url(默認爲空) |
star | int | 點贊數(默認爲0) |
comment | int | 評論數(默認爲0) |
view | int | 訪問數(默認爲0) |
表中冗餘admin_department方便查詢
pic字段存儲博客中第一張圖片的url地址,如果沒有爲空,用來在預覽博客的界面顯示博客的圖片,類似下圖
用戶反饋表:contact
表字段 | 類型 | 註釋 |
---|---|---|
id | int | 主鍵 |
uid | int | 用戶id(外鍵——user.id) |
uname | varchar | 用戶暱稱 |
title | varchar | 標題 |
content | varchar | 內容 |
date | date | 時間 |
status | tinyint | 0:未讀,1:已讀(默認爲0) |
博客網站有用戶反饋界面,status字段用來判斷該用戶反饋信息管理員是否已經查看,和普通社交網站的信息界面一樣,是我想添加的一個功能
評論表:comments
表字段 | 類型 | 註釋 |
---|---|---|
id | int | 主鍵 |
uid | int | 用戶id(外鍵——user.id) |
cid | int | 博客id(外鍵——contents.id) |
uname | varchar | 用戶暱稱 |
content | varchar | 內容 |
reply_count | int | 評論被回覆的數目(默認0) |
date | date | 時間 |
star | int | 點贊數 |
回覆表:reply
表字段 | 類型 | 註釋 |
---|---|---|
id | int | 主鍵 |
cid |
int |
回覆所屬博客id(外鍵——contents.id) |
comment_id | int | 回覆所屬評論id(外鍵——comments.id) |
from_uid | int | 回覆用戶id(外鍵——user.id) |
to_uid | int | 被回覆用戶id(外鍵——user.id) |
from_uname | varchar | 回覆用戶暱稱 |
to_uname | varchar | 被回覆用戶暱稱 |
date | date | 時間 |
content | varchar | 內容 |
star | int | 點贊(默認0) |
status | tinyint | 0未讀、1已讀 |
我的評論在第一級,回覆統一放在第二級,就像csdn的評論結構一樣。我並沒有像我參考的博客那樣把回覆分成對評論的回覆和對回覆的回覆,我是想只要知道評論下屬的所有回覆,然後把回覆按時間排序就可以了。
我在該表中冗餘了from_uname和to_uname字段,這兩個字段的值是可以通過to_uid和from_uid查詢的,我的評論界面是仿照csdn的界面的,所以我需要顯示回覆者和被回覆者的姓名。冗餘之後我們只要查詢單表就可以了。
系統通知表:sys_notice
表字段 | 類型 | 註釋 |
---|---|---|
id | int | 主鍵 |
content | varchar | 內容 |
date | date | 時間 |
status | tinyint | 0未讀,1已讀 |
點贊信息表:great
表字段 | 類型 | 註釋 |
---|---|---|
id |
int |
主鍵 |
cid | int | 博客id |
uid | int | 點贊用戶id(外鍵——user.id) |
type_id | int | 博客、評論或回覆id |
type | int | 0博客點贊、1評論點贊和2回覆點贊(默認0) |
date | date | 時間 |
status | tinyint | 0已讀,1未讀(默認0) |
不止博客可以被點贊,用戶的評論和回覆也可以被點贊,type字段的值說明被點讚的是什麼類型,我在網上看到很多博客的點贊表中還加了status字段表示已贊和未贊,我覺得沒什麼必要就去掉了,點了贊就創建一條數據,取消贊就把這條數據刪除,點贊信息表是用來判斷當前登錄用戶是否對博客、評論或者回復點過贊。
字段cid是後面添加的,它表示所屬博客下的點贊信息,就是說如果這是評論點贊信息,該評論是cid博客下的評論,回覆同理,如果是博客則cid=type_id。
參考博文:博客1