1. 程式人生 > >基於SpringBoot從零構建博客網站 - 確定需求和表結構

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

簡單 order itl long tab 轉載 href 保存文件 存儲

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

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

那麽從這3大類用戶的角度分析,來確定博客網站的需求。

1、作者需求

作者是博客網站中最重要的用戶,是博客網站內容的直接貢獻者,那麽從作者的角度來說,需求有:

  • 註冊、登錄、退出

    這是作者進入與離開網站必不可少的功能,同時管理員可以設置是否需要激活賬號的功能,如果開啟了賬號激活功能,那麽作者註冊成功後,會收到一封激活賬號的郵件。

  • 個人中心

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

  • 關註其她作者

    關註其她作者,成為其粉絲,同時方便下次找到該作者

  • 私信其她作者

    增加本網站作者間的互動,例如:請教其她作者問題時,就可以發私信的方式進行交流

  • 收藏文章

    碰到其她作者寫的好的文章,可以將其收藏起來,方便下次查看

  • 文章維護

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

  • 專欄維護

    對於寫同一系列的文章,可以創建專欄,將這一系列的文章都歸檔於該專欄,這樣方便作者管理,也方便讀者查閱

  • 評論文章

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

2、遊客需求

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

  • 檢索文章

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

  • 閱讀文章

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

3、管理員需求

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

  • 報表信息

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

  • 用戶管理

    查看用戶信息,當然可以禁用不合法用戶、創建管理員用戶

  • 文章管理

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

  • 專欄管理

    查看專欄信息

  • 系統設置

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

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

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

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

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) 權限表主鍵

5、文章及專欄等博文相關模塊

這個模塊是博客網站的核心模塊,主要涉及文章和專欄相關表的設計。

一個博客網站裏面文章和專欄都會歸類,比如是屬於架構設計、還是屬於前端開發的內容,所以需要一張分類信息表,即:

分類信息表:blog_category

字段名 類型 說明
categoryId varchar(64) 主鍵
name varchar(200) 分類名稱
introduce varchar(2000) 說明
parentId varchar(64) 父節點id
orderId int(11) 排序號

在寫文章時,可以為文章寫相應標簽,有利於文章的檢索,那麽就得有一張標簽表,即;