0 追蹤者

整體設計

根據需求分析,我們決定使用以下資料庫表格來儲存部落格應用程式的持久性資料

  • tbl_user 儲存使用者資訊,包含使用者名稱與密碼。
  • tbl_post 儲存部落格文章資訊。主要包含以下欄位
    • title:必填,文章標題;
    • content:必填,文章內文,使用 Markdown 格式
    • status:必填,文章狀態,可以是以下其中一個值
      • 1,代表文章為草稿,且不對外公開;
      • 2,代表文章已發布至公開;
      • 3,代表文章已過時,且不會顯示在文章列表中(但仍可個別存取)。
    • tags:選填,以逗號分隔的單字列表,用於文章分類。
  • tbl_comment 儲存文章留言資訊。每個留言都與一篇文章關聯,主要包含以下欄位
    • author:必填,作者姓名;
    • email:必填,作者電子郵件;
    • url:選填,作者網站網址;
    • content:必填,留言內容,純文字格式。
    • status:必填,留言狀態,表示留言是否已核准(值為 2)或未核准(值為 1)。
  • tbl_tag 儲存文章標籤頻率資訊,用於實作標籤雲功能。此表格主要包含以下欄位
    • name:必填,唯一的標籤名稱;
    • frequency:必填,標籤在文章中出現的次數。
  • tbl_lookup 儲存通用查詢資訊。本質上是整數值與文字字串之間的對應。前者是我們程式碼中的資料表示,後者是對應於終端使用者的呈現。例如,我們使用整數 1 代表草稿文章狀態,並使用字串 Draft 向終端使用者顯示此狀態。此表格主要包含以下欄位
    • name:資料項目的文字表示,將顯示給終端使用者;
    • code:資料項目的整數表示;
    • type:資料項目的類型;
    • position:相同類型資料項目中,此資料項目的相對顯示順序。

以下實體關係 (ER) 圖顯示了上述表格的表格結構與關係。

部落格資料庫的實體關係圖

Entity-Relation Diagram of the Blog Database

對應於上述 ER 圖的完整 SQL 陳述式可以在 部落格示範 中找到。在我們的 Yii 安裝中,它們位於檔案 /wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql 中。

資訊: 我們的所有表格名稱與欄位名稱都使用小寫。這是因為不同的 DBMS 通常具有不同的區分大小寫處理方式,而我們想要避免這類問題。

我們也在所有表格名稱前加上 tbl_ 前綴。這有兩個目的。首先,當這些表格需要與同一個資料庫中的其他表格共存時,前綴會為這些表格引入命名空間,這在多個應用程式使用單一資料庫的共享主機環境中經常發生。其次,使用表格前綴降低了某些表格名稱成為 DBMS 中的保留關鍵字的機率。

我們將部落格應用程式的開發劃分為以下里程碑。

  • 里程碑 1:建立部落格系統的原型。它應包含大部分所需的功能。
  • 里程碑 2:完成文章管理。包含建立、列出、顯示、更新與刪除文章。
  • 里程碑 3:完成留言管理。包含建立、列出、核准、更新與刪除文章留言。
  • 里程碑 4:實作 Portlets。包含使用者選單、登入、標籤雲與近期留言 Portlets。
  • 里程碑 5:最終調整與部署。

發現錯字或您認為此頁面需要改進?
在 github 上編輯 !