基于.NET平台的分层架构实战(二)——需求分析与数据库设计
?基于.NET平臺的分層架構實戰(五)——接口的設計與實現
·?基于.NET平臺的分層架構實戰(四)——實體類的設計與實現
·?基于.NET平臺的分層架構實戰(三)——架構概要設計
·?基于.NET平臺的分層架構實戰(一)——綜述
?
在實際的項目中,需求分析和數據庫的設計是很重要的一個環節,這個環節會直接影響項目的開發過程和質量。實際中,這個環節不但需要系統分析師、軟件工程師等計算機方面的專家,還需要相關領域的領域專家參與才能完成。
但是,在這個文章系列中,所要使用的Demo僅僅是一個例子,而且其業務極為簡單,因此,這里并不是真正的需求分析和數據庫設計,而是將Demo的需求和數據庫羅列至此,使朋友們對Demo有一個大體的了解,方便后續文章中開發過程的理解。
需求分析:
這個項目是一個留言本,其業務極為簡單,現將其描述如下。
1.任何訪問者可以進行留言,留言完成后,不會立即顯示正文,而是要經過管理員驗證后才可顯示。
2.任何訪問者可以對留言發表評論,未通過驗證的留言不可以評論。
3.管理員可以對留言進行回復(這個回復不同于評論,是直接顯示在正文下面,而且是一個留言只能有一個回復),并可對留言與評論實行刪除,以及對留言進行通過驗證操作。
4.管理員分為超級管理員和普通管理員。超級管理員只有一個,負責對普通管理員實行添加、刪除操作。普通管理員可偶多個,負責對留言的管理,并可以修改自己的登錄密碼。
這個項目的用例圖如下:
圖2.1、NGuestBook的用例圖
數據庫設計:
設計數據表之前,首先進行實體和關系的識別與確定。
通過需求分析,可以觀察得出,本項目的實體有:管理員(不包括超級管理員),留言,評論。本項目的關系有:留言與評論間的一對多關系。
進一步,數據庫各表的設計如下:
管理員表(TAdmin)
ID??? int??? 管理員ID??? NotNull??? 主鍵,自增
Name??? varchar(20)??? 登錄名??? NotNull
Password??? varchar(50)??? 登錄密碼??? NotNull??? 使用MD5加密
留言表(TMessage)
ID??? int??? 留言ID??? NotNull??? 主鍵,自增
GuestName??? varchar(20)??? 留言者用戶名??? NotNull
GuestEmail??? varchar(100)??? 留言者E-mail??? Null
Content??? text??? 留言內容??? NotNull
Time??? datetime??? 發表留言時間??? NotNull????
Reply??? text??? 回復??? Null
IsPass????varchar(10)??? 是否通過驗證??? NotNull
評論表(TComment)
ID????int??? 評論ID??? NotNull??? 主鍵,自增
Content??? text??? 評論內容??? NotNull
Time??? datetime??? 發表評論時間??? NotNull
MessageID??? int??? 所屬留言的ID??? 外鍵
本文基于署名-非商業性使用 3.0許可協議發布,歡迎轉載,演繹,但是必須保留本文的署名張洋(包含鏈接),且不得用于商業目的。如您有任何疑問或者授權方面的協商,請與我聯系。
?
?
評論表中沒有主鍵。管理員表中用戶名應該就是主鍵,你的管理員登錄時候用戶名就應該不能重復。不是什么都用自增長類型的。?
系統是東亞用戶為主的話應該考慮使用nvarchar而不是varchar。?
如果考慮使用的是ORM的話表名推薦不要加T了,應該是你的老師讓你這樣做的,2000年以前的程序員到挺習慣加這個。可是加了,操作實體對象很累,畢竟已經有命名空間做限制了。?
如果用戶有需求提出可以對評論進行評論的,這個設計就OVER了。?
需求中2的后半句有疑問,看不到的留言如何進行評論?
?
首先,說一下樓主辛苦了。
對LZ數據庫的設計,個人建議如下:
1.管理員表(TAdmin)里有個假刪除的字段(凍結),因為對于管理員來說不能說刪除就刪除吧!如果哪天需要重新啟用了,在添加感覺挺麻煩;對于24樓的建議,偶也有此意,不過,樓主有回復。
2.留言表(TMessage) 一個留言有一個回復可能有他本身的業務需求吧?
3.評論表(TComment) 雖然可以匿名回復,但是,還是建議有個GuestName的字段,這樣對于登錄的用戶還是可以顯示用戶名的,從而可以實現其互動性的作用。
以上只是個人觀點,歡迎討論。
總結
以上是生活随笔為你收集整理的基于.NET平台的分层架构实战(二)——需求分析与数据库设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 太原男子倒卖消费券被罚:建微信群1.5折
- 下一篇: [你必须知道的.NET]第二十三回:品味