asp.net|資料|資料庫
初步瞭解了ASP.NET Portal Starter Kit後(我以前的文章),本來想繼續重構代碼的。在構思的時候想到要是能把五個入門套件結合在一起不是更好。Time Tracker(時間管理或項目追蹤)是利用微軟的Data Access Application Block作為資料庫訪問層的,我正好也要這樣做,所以就先來看看ASP.NET Time Tracker Starter Kit。
ASP.NET Time Tracker Starter Kit(項目追蹤入門套件),提供項目成員(顧問)於每一項項目中各類別所花費的時間,加予統計分析,相當於項目的「項目成員工時記錄卡」。詳細介紹可參見微軟網站上的一片文章。像解讀門戶網站入門套件一樣,還是先從資料庫說起。
資料庫中的表:
TT_Categories:項目目錄資訊
欄位名
類型
含義
備忘
CategoryID
Int
目錄Id
主鍵(自動編號)
ProjectID
Int
所屬項目Id
關聯項目資訊表
Name
Nvarchar(50)
目錄名稱
Abbreviation
Nvarchar(4)
簡寫
EstDuration
Decimal(9)
預計期間
小數位兩位(單位:小時)
TT_EntryLog:項目成員工時記錄卡
欄位名
類型
含義
備忘
EntryLogID
Int
記錄Id
主鍵(自動編號)
Description
Nvarchar(255)
工作描述
Duration
Decimal(9)
完成工時
小數位兩位
EntryDate
SmallDatetime
記錄日期
ProjectID
Int
所屬項目Id
關聯項目成員表
UserID
Int
所屬使用者Id
CategoryID
Int
所屬目錄Id
TT_ProjectMembers:項目成員表(通過此表可以反映:一個使用者可以同時參與多重專案,一個項目也可有多個使用者參與)
欄位名
類型
含義
備忘
ProjectID
Int
項目Id
關聯項目資訊表
UserID
Int
項目成員Id
關聯使用者資訊表
TT_Projects:項目資訊表
欄位名
類型
含義
備忘
ProjectID
Int
項目Id
主鍵(自動編號)
Name
Nvarchar(50)
項目名稱
Description
Nvarchar(1024)
項目描述
ManagerUserID
Int
專案經理Id
關聯使用者表
EstCompletionDate
Datetime
預計完成時間
EstDuration
Decimal(9)
預計期間
小數位兩位(單位:小時)
CreationDate
Datetime
建立事件
預設值:getdate()
TT_Roles:角色資訊表
欄位名
類型
含義
備忘
RoleID
Int
角色Id
主鍵(自動編號)
Name
Nvarchar(50)
角色名稱
TT_Users:使用者資訊表
欄位名
類型
含義
備忘
UserID
Int
使用者Id
主鍵(自動編號)
DisplayName
Nvarchar(50)
使用者姓名
Password
Nvarchar(50)
密碼
採用MD5的加密方式儲存
UserName
Nvarchar(50)
登入名稱(使用者Email)
用於登入,並設定成唯一性索引(可防止註冊相同的Email,這樣設定後當有相同的Email插入時程式就會拋出異常,捕獲這個異常就可判斷Email是否重複,這樣就可以省掉判斷Email是否重複的代碼)
RoleID
Int
角色Id
關聯角色資訊表(TT_Roles)
資料庫中的預存程序:(內建的文檔中有詳解,不贅述)
各表關係:
Time Tracker中的各資料表中的關係不同與Portal,各表之間有很強的約束關係。在完整性條件約束上面做的比較好。從各表中的關係上來看,是符合資料設計第三範式的。