基於SpringBoot從零構建博客網站 - 肯定需求和表結構

要肯定一個系統的需求,首先須要明確該系統的用戶有哪些,而後針對每一類用戶,肯定其需求。對於博客網站來講,用戶有3大類,分別是:前端

  • 做者,也便是註冊用戶
  • 遊客,也即非註冊用戶
  • 管理員,網站維護人員

那麼從這3大類用戶的角度分析,來肯定博客網站的需求。數據庫

一、做者需求

做者是博客網站中最重要的用戶,是博客網站內容的直接貢獻者,那麼從做者的角度來講,需求有:微信

  • 註冊、登陸、退出架構

    這是做者進入與離開網站必不可少的功能,同時管理員能夠設置是否須要激活帳號的功能,若是開啓了帳號激活功能,那麼做者註冊成功後,會收到一封激活帳號的郵件。網站

  • 我的中心url

    註冊成本網站的用戶後,就會有我的首頁,這裏就會涉及到我的相關信息的維護,例如:頭像設置、我的簡介、修改密碼。架構設計

  • 關注其她做者翻譯

    關注其她做者,成爲其粉絲,同時方便下次找到該做者設計

  • 私信其她做者日誌

    增長本網站做者間的互動,例如:請教其她做者問題時,就能夠發私信的方式進行交流

  • 收藏文章

    碰到其她做者寫的好的文章,能夠將其收藏起來,方便下次查看

  • 文章維護

    文章維護是做者最主要的功能,做者發表文章、修改文章、刪除文章和查看文章

  • 專欄維護

    對於寫同一系列的文章,能夠建立專欄,將這一系列的文章都歸檔於該專欄,這樣方便做者管理,也方便讀者查閱

  • 評論文章

    做者與讀者間溝通交流的方式

二、遊客需求

對於遊客來講,需求相關簡單,就是檢索和閱讀文章:

  • 檢索文章

    檢索文章能夠從4個渠道檢索,即:關鍵字全文檢索、文章分類檢索、文章所屬專欄檢索、文章標籤檢索

  • 閱讀文章

    這是遊客最主要的功能,查看文章的內容

三、管理員需求

管理員的主要工做就是維護本網站,讓網站正常運行,爲此從管理員的角度來看,需求有:

  • 報表信息

    對於管理員來講,他須要瞭解本網站的各項指標統計信息,例如:今日註冊用戶數、今日活躍用戶數、文章發表量等。能夠將這些報表信息作在儀表盤裏面。

  • 用戶管理

    查看用戶信息,固然能夠禁用不合法用戶、建立管理員用戶

  • 文章管理

    查看文章信息,同時對於不合法的文章能夠將其關閉,即不能在前臺顯示

  • 專欄管理

    查看專欄信息

  • 系統設置

    對於系統設置主要有設置註冊用戶是否須要激活、設置文章是否須要審覈

根據前面《肯定需求》,可知這個博客網站主要由三大模塊構成,分別是:

  • 用戶管理及權限相關模塊
  • 文章及專欄等博文相關模塊
  • 公共模塊

那麼從這三大模塊的角度來分析,肯定表結構。

四、用戶管理及權限相關模塊

這個模塊最主要是有一張用戶表,用於存儲用戶相關的信息,具體的表結構內容以下:

用戶表:auth_user

字段名 類型 說明
userId varchar(64) 主鍵
code varchar(64) 用戶代碼,用於設置用戶我的主頁url上的一個惟一代碼
loginName varchar(200) 用戶名
email 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 建立時間

關注我

以你最方便的方式關注我:
微信公衆號:

相關文章
相關標籤/搜索