首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

實戰分層架構(二):需求分析與資料庫設計——留言本系統的極簡領域建模

     編輯:關於.NET

專案背景與簡化說明

本系列以簡易留言本 NGuestBook 為 Demo,業務極簡,僅作為架構示範載體。真實專案需領域專家、系統分析師共同參與完整需求工程流程。

業務需求用例

  1. 訪客可發表留言,**需管理員審核通過後才顯示**。
  2. 訪客可對**已通過審核**的留言發表評論。
  3. 管理員可:**回覆留言**(僅一條、顯示於留言下)、**刪除留言/評論**、**審核通過留言**。
  4. 管理員分**超級管理員(唯一,管理普通管理員)**與**普通管理員(多位,管理留言、可改密碼)**。

用例圖

實體識別與關係分析

  • 實體:管理員(不含超級管理員)、留言、評論。
  • 關係:留言 1 : N 評論(一則留言可有多則評論)。
  • 超級管理員為單一特權帳號,不納入資料表,由程式碼硬編碼或獨立配置處理。

資料庫表結構設計

TAdmin:管理員表

欄位型別說明約束
IDint管理員 IDPK, Identity, Not Null
Namevarchar(20)登入帳號Not Null
Passwordvarchar(50)登入密碼Not Null, MD5 加密儲存

TMessage:留言表

欄位型別說明約束
IDint留言 IDPK, Identity, Not Null
GuestNamevarchar(20)留言者暱稱Not Null
GuestEmailvarchar(100)留言者 EmailNullable
Contenttext留言內容Not Null
Timedatetime發表時間Not Null
Replytext管理員回覆Nullable
IsPassvarchar(10)是否通過審核Not Null (Y/N)

TComment:評論表

欄位型別說明約束
IDint評論 IDPK, Identity, Not Null
Contenttext評論內容Not Null
Timedatetime發表時間Not Null
MessageIDint所屬留言 IDFK → TMessage.ID, Not Null

設計考量說明

  • IsPass 使用 varchar(10):Access 不支援 Boolean,統一存「Y」/「N」,實體屬性對應 string。
  • Reply 獨立欄位而非獨立表:業務規定「一則留言最多一條回覆」,以欄位滿足,避免過度正規化。
  • 密碼 MD5 加密:不儲存明文,登入時比對雜湊值。
  • 無軟刪除欄位:簡化 Demo,實際專案建議加 IsDeleted。

資料庫設計完成,下篇進入架構概要設計。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved