要肯定一個系統的需求,首先須要明確該系統的用戶有哪些,而後針對每一類用戶,肯定其需求。對於博客網站來講,用戶有3大類,分別是:前端
那麼從這3大類用戶的角度分析,來肯定博客網站的需求。數據庫
做者是博客網站中最重要的用戶,是博客網站內容的直接貢獻者,那麼從做者的角度來講,需求有:微信
註冊、登陸、退出架構
這是做者進入與離開網站必不可少的功能,同時管理員能夠設置是否須要激活帳號的功能,若是開啓了帳號激活功能,那麼做者註冊成功後,會收到一封激活帳號的郵件。網站
我的中心url
註冊成本網站的用戶後,就會有我的首頁,這裏就會涉及到我的相關信息的維護,例如:頭像設置、我的簡介、修改密碼。架構設計
關注其她做者翻譯
關注其她做者,成爲其粉絲,同時方便下次找到該做者設計
私信其她做者日誌
增長本網站做者間的互動,例如:請教其她做者問題時,就能夠發私信的方式進行交流
收藏文章
碰到其她做者寫的好的文章,能夠將其收藏起來,方便下次查看
文章維護
文章維護是做者最主要的功能,做者發表文章、修改文章、刪除文章和查看文章
專欄維護
對於寫同一系列的文章,能夠建立專欄,將這一系列的文章都歸檔於該專欄,這樣方便做者管理,也方便讀者查閱
評論文章
做者與讀者間溝通交流的方式
對於遊客來講,需求相關簡單,就是檢索和閱讀文章:
檢索文章
檢索文章能夠從4個渠道檢索,即:關鍵字全文檢索、文章分類檢索、文章所屬專欄檢索、文章標籤檢索
閱讀文章
這是遊客最主要的功能,查看文章的內容
管理員的主要工做就是維護本網站,讓網站正常運行,爲此從管理員的角度來看,需求有:
報表信息
對於管理員來講,他須要瞭解本網站的各項指標統計信息,例如:今日註冊用戶數、今日活躍用戶數、文章發表量等。能夠將這些報表信息作在儀表盤裏面。
用戶管理
查看用戶信息,固然能夠禁用不合法用戶、建立管理員用戶
文章管理
查看文章信息,同時對於不合法的文章能夠將其關閉,即不能在前臺顯示
專欄管理
查看專欄信息
系統設置
對於系統設置主要有設置註冊用戶是否須要激活、設置文章是否須要審覈
根據前面《肯定需求》,可知這個博客網站主要由三大模塊構成,分別是:
那麼從這三大模塊的角度來分析,肯定表結構。
這個模塊最主要是有一張用戶表,用於存儲用戶相關的信息,具體的表結構內容以下:
用戶表:auth_user
字段名 | 類型 | 說明 |
---|---|---|
userId | varchar(64) | 主鍵 |
code | varchar(64) | 用戶代碼,用於設置用戶我的主頁url上的一個惟一代碼 |
loginName | varchar(200) | 用戶名 |
varchar(200) | 電子郵箱 | |
password | varchar(200) | 密碼 |
realName | varchar(200) | 真實姓名 |
cellphone | varchar(32) | 手機號碼 |
idCard | varchar(32) | 身份證號 |
idCardImgPath | varchar(200) | 身份證照片路徑 |
realStatus | int(11) | 實名認證狀態,0:未實名認證,1:已實名認證,-1:實名認證失敗 |
sex | int(11) | 性別,0:表示女,1:表示男,-1:表示保密 |
picture | varchar(200) | 頭像圖片路徑 |
introduce | varchar(2000) | 我的簡介 |
isActive | int(11) | 是否激活,0:未激活,1:已激活 |
status | int(11) | 帳號狀態,0:禁用,1:啓用 |
follows | int(11) | 關注用戶數量 |
fans | int(11) | 粉絲數量 |
createTime | datetime | 建立時間,也即註冊時間 |
createIp | varchar(32) | 建立時的ip地址 |
updateTime | datetime | 更新時間 |
lastLoginTime | datetime | 最近一次登陸的時間 |
lastLoginIp | varchar(32) | 最近一次登陸的ip |
對於感興趣的用戶能夠加關注,則有用戶粉絲關注信息表,即:
用戶粉絲關注信息表:auth_user_fans
字段名 | 類型 | 說明 |
---|---|---|
followWho | varchar(64) | 被關注用戶id |
whoFollow | varchar(64) | 關注人的id |
createTime | datetime | 建立時間 |
對於權限管理這一塊,其實主要後臺的管理人員會涉及到。這一塊採用簡單的用戶綁定角色,角色綁定權限的方式來設計。
角色表:auth_role
字段名 | 類型 | 說明 |
---|---|---|
roleId | varchar(64) | 主鍵 |
name | varchar(200) | 角色名 |
note | varchar(2000) | 描述 |
用戶角色關係表:auth_user_role
字段名 | 類型 | 說明 |
---|---|---|
userId | varchar(64) | 用戶表主鍵 |
roleId | varchar(64) | 角色表主鍵 |
權限表:auth_action
字段名 | 類型 | 說明 |
---|---|---|
actionId | varchar(64) | 主鍵 |
name | varchar(200) | 權限名 |
note | varchar(2000) | 描述 |
角色權限關係表:auth_role_action
字段名 | 類型 | 說明 |
---|---|---|
roleId | varchar(64) | 角色表主鍵 |
actionId | varchar(64) | 權限表主鍵 |
這個模塊是博客網站的核心模塊,主要涉及文章和專欄相關表的設計。
一個博客網站裏面文章和專欄都會歸類,好比是屬於架構設計、仍是屬於前端開發的內容,因此須要一張分類信息表,即:
分類信息表:blog_category
字段名 | 類型 | 說明 |
---|---|---|
categoryId | varchar(64) | 主鍵 |
name | varchar(200) | 分類名稱 |
introduce | varchar(2000) | 說明 |
parentId | varchar(64) | 父節點id |
orderId | int(11) | 排序號 |
在寫文章時,能夠爲文章寫相應標籤,有利於文章的檢索,那麼就得有一張標籤表,即;
標籤表:blog_tag
字段名 | 類型 | 說明 |
---|---|---|
tagId | varchar(64) | 主鍵 |
tag | varchar(200) | 標籤 |
createTime | datetime | 建立時間 |
在寫一系列相關的文章時,能夠建立一個專欄,也檢索文章增長專欄這樣一個維度,那麼專欄信息表結構以下:
專欄信息表:blog_group
字段名 | 類型 | 說明 |
---|---|---|
groupId | varchar(64) | 主鍵 |
name | varchar(200) | 名稱 |
logo | varchar(200) | 圖標logo路徑 |
introduce | varchar(2000) | 介紹 |
status | int(11) | 審覈狀態,0:未審覈,1:已審覈,-1:審覈不經過 |
categoryId | varchar(64) | 所屬分類id |
creator | varchar(64) | 建立者,也即用戶表主鍵 |
createTime | datetime | 建立時間 |
updateTime | datetime | 更新時間 |
用戶對感興趣的專欄能夠進行關注,那麼就有一個專欄的關注信息表,即:
關注專欄信息表:blog_group_fans
字段名 | 類型 | 說明 |
---|---|---|
groupId | varchar(64) | 主鍵 |
userId | varchar(64) | 用戶表主鍵 |
createTime | datetime | 建立時間 |
博客網站最主要的內容就是文章,爲此文章信息表極爲重要,它的結構以下:
文章信息表:blog_article
字段名 | 類型 | 說明 |
---|---|---|
articleId | varchar(64) | 主鍵 |
groupId | varchar(64) | 專欄信息表主鍵 |
type | int(11) | 文章類型,1:原創,2:翻譯,3:轉載 |
title | varchar(200) | 標題 |
description | varchar(2000) | 描述 |
content | longtext | 內容 |
status | int(11) | 文章狀態,1:待審覈,2:審覈經過,-1:審覈不經過 |
canTop | int(11) | 是否置頂,0:不置頂,1置頂 |
canComment | int(11) | 是否能夠評論,0:不可評論,1:能夠評論 |
viewCount | bigint(20) | 瀏覽次數 |
goodNum | bigint(20) | 點贊次數 |
badNum | bigint(20) | 踩的次數 |
checkAdmin | varchar(64) | 審覈管理員id |
createTime | datetime | 建立時間 |
createIp | varchar(64) | 建立時ip |
publishTime | datetime | 發佈時間 |
updateTime | datetime | 更新時間 |
userId | varchar(64) | 用戶表主鍵 |
能夠爲文章打上標籤,爲此文章與標籤的關係表,即:
文章標籤關係表:blog_article_tag
字段名 | 類型 | 說明 |
---|---|---|
articleId | varchar(64) | 文章表主鍵 |
tagId | varchar(64) | 標籤表主鍵 |
createTime | datetime | 建立時間 |
用戶對於好的文章能夠進行收藏,則有一個收藏文章信息表,即:
收藏文章信息表:blog_collect_article
字段名 | 類型 | 說明 |
---|---|---|
userId | varchar(64) | 用戶表主鍵 |
articleId | varchar(64) | 文章表主鍵 |
createTime | datetime | 建立時間 |
站點有一些配置信息,對於相關的配置信息也能夠是放在配置文件中,這裏將一些配置信息放置於數據庫中,即站點相關配置信息表:
站點相關配置信息表:comm_config
字段名 | 類型 | 說明 |
---|---|---|
configId | varchar(200) | 配置項key |
configValue | varchar(1024) | 配置項value |
description | varchar(2000) | 描述 |
對於記錄文件上傳下載信息,則須要上傳文件信息表:
上傳文件信息表:comm_upload_file
字段名 | 類型 | 說明 |
---|---|---|
uploadFileId | varchar(64) | 主鍵 |
path | varchar(200) | 保存文件路徑 |
orignalName | varchar(200) | 文件原始名稱 |
fileSize | bigint(20) | 文件大小 |
fileType | varchar(200) | 文件類型 |
distType | varchar(200) | 實體類型 |
userId | varchar(64) | 用戶id |
createTime | datetime | 建立時間 |
downloadNum | bigint(20) | 下載次數 |
評論模塊對於網站來講也是必不可少的,因此記錄評論信息的表以下:
評論信息表:comm_comment
字段名 | 類型 | 說明 |
---|---|---|
commentId | varchar(64) | 主鍵 |
distId | varchar(64) | 評論目標id |
distType | varchar(200) | 目標類型 |
content | text | 評論內容 |
userId | varchar(64) | 評論人的id |
goodNum | bigint(20) | 點贊數 |
createTime | datetime | 建立時間 |
createIp | varchar(32) | 評論時的ip |
評論回覆信息表:comm_comment_reply
字段名 | 類型 | 說明 |
---|---|---|
commentReplyId | varchar(64) | 主鍵 |
replyDistId | varchar(64) | 回覆目標id |
replyDistType | varchar(200) | 回覆目標類型 |
content | text | 回覆內容 |
fromUserId | varchar(64) | 回覆用戶id |
toUserId | varchar(64) | 被回覆人的id |
goodNum | bigint(20) | 點贊數 |
createTime | datetime | 回覆時間 |
createIp | varchar(32) | 回覆時的ip |
commentId | varchar(64) | 評論id |
根據前面的需求,是有一個私信的功能,那麼私信相關的表以下:
私信信息表:comm__message
字段名 | 類型 | 說明 |
---|---|---|
messageId | varchar(64) | 主鍵 |
senderId | varchar(64) | 發信者ID |
receiverId | varchar(64) | 收信者ID |
content | text | 私信內容 |
isRead | int(10) | 是否已讀標識,1表示已讀;0表示未讀 |
senderDel | int(10) | 發信者是否刪除,1表示刪除;0表示未刪除 |
receiverDel | int(10) | 收信者是否刪除,1表示刪除;0表示未刪除 |
createTime | datetime | 建立時間 |
記錄業務日誌信息,能夠爲查找問題提供很好證實,爲些日誌信息表爲:
日誌信息表:comm_log
字段名 | 類型 | 說明 |
---|---|---|
logId | varchar(64) | 主鍵 |
userId | varchar(64) | 用戶表主鍵 |
ip | varchar(32) | 操做時的ip |
distType | varchar(200) | 操做目標類型 |
distId | varchar(64) | 操做目標id |
content | varchar(2000) | 日誌內容 |
createTime | datetime | 建立時間 |
以你最方便的方式關注我:
微信公衆號: