解讀ASP.NET Portal Starter Kit(1)——資料庫篇
來源:互聯網
上載者:User
asp.net|資料|資料庫
ASP.NET Portal Starter Kit資料庫結構總體上來講是由網站引擎的核心表(使用者表、角色表和角色關係表)和各個使用者模組相關的表組成。核心表格儲存體整個網站的使用者權限的配置資訊(詳細的用法及說明將放到《角色身份認證篇》中講)。各使用者模組儲存各個功能模組的資訊。各個使用者功能模組表都是獨立的。這樣有利於新增模組擴充功能。同時也可將各個功能模組的表分別部署到不同的資料庫中提高程式的高伸縮性和可擴充性。資料的訪問方式是全部通過預存程序進行的。這樣做的好處有:1、提高了資料庫的效能;2、杜絕了SQL注入式攻擊(在我的理解上應該是);3、可將可將串連到SQL Server資料庫使用者的許可權只配置成只能對指定預存程序進行執行操作,這樣就進一步提高了資料庫的安全性。
資料庫中的表:
Portal_Announcements:公告資訊表(在公告資訊模組中用)
欄位名
類型
含義
備忘
ItemID
Int
連結Id
主鍵(自動編號)
ModuleID
Int
所屬模組ID
決定該公告在那個模組中顯示(模組ID:使用者設定檔PortalCfg.xml中的模組表ID,以下皆同)
CreatedByUser
Nvarchar(100)
建立者
記錄建立和修改該公告的使用者
CreatedDate
Datetime
建立時間
記錄建立和修改該公告的時間
Title
Nvarchar(100)
名稱
MoreLink
Nvarchar(150)
更多細節的連結
MobileMoreLink
Nvarchar(150)
移動細節連結地址
在“行動裝置瀏覽器”上的更多細節連結地址
ExpireDate
Datetime
有效日期
Description
Nvarchar(2000)
描述
Portal_Contacts:連絡方式資訊表(在連絡方式模組中用)
欄位名
類型
含義
備忘
ItemID
Int
連結Id
主鍵(自動編號)
ModuleID
Int
所屬模組ID
決定該連絡方式在那個模組中顯示
CreatedByUser
Nvarchar(100)
建立者
記錄建立和修改該連絡方式的使用者
CreatedDate
Datetime
建立時間
記錄建立和修改該連絡方式的時間
Name
Nvarchar(50)
連絡人姓名
Role
Nvarchar(100)
連絡人角色
與系統架構中的角色不同,理解成職位更合適
Email
Nvarchar(100)
連絡人Email
Contact1
Nvarchar(250)
連絡方式1
Contact2
Nvarchar(250)
連絡方式2
Portal_Discussion:使用者討論留言資訊表(使用者討論模組用)
欄位名
類型
含義
備忘
ItemID
Int
連結Id
主鍵(自動編號)
ModuleID
Int
所屬模組ID
決定該討論在那個模組中顯示
Title
Nvarchar(50)
討論標題
CreatedDate
Datetime
建立時間
記錄建立該討論的時間
Body
Nvarchar(100)
留言內容
CreatedByUser
Nvarchar(100)
建立者
記錄建立和修改該討論的使用者
DisplayOrder
Nvarchar(100)
顯示順序
記錄回複的討論的時間和本身提交的時間 (可用作討論留言的排序和顯示回複關係)
Portal_Documents:使用者上傳文檔資訊表(在顯示文檔資訊模組中用)
欄位名
類型
含義
備忘
ItemID
Int
連結Id
主鍵(自動編號)
ModuleID
Int
所屬模組ID
決定該連絡方式在那個模組中顯示
CreatedByUser
Nvarchar(100)
建立者
記錄建立和修改該連絡方式的使用者
CreatedDate
Datetime
建立時間
記錄建立和修改該連絡方式的時間
FileNameUrl
Nvarchar(250)
上傳至伺服器中的檔案路徑
FileFriendlyName
Nvarchar(150)
文檔名稱
與系統架構中的角色不同,理解成職位更合適
Category
Nvarchar(50)
類別
Content
Image
內容(二進位)
上傳到資料庫中的內容
ContentType
Nvarchar(50)
類型
上傳檔案的類型
ContentSize
Int
大小
上傳檔案的大小
Portal_Events:事件資訊表(在顯示事件資訊的模組中使用)
欄位名
類型
含義
備忘
ItemID
Int
連結Id
主鍵(自動編號)
ModuleID
Int
所屬模組ID
決定該事件在那個模組中顯示
CreatedByUser
Nvarchar(100)
建立者
記錄建立和修改該事件的使用者
CreatedDate
Datetime
建立時間
記錄建立和修改該事件的時間
Title
Nvarchar(100)
事件名稱
WhereWhen
Nvarchar(150)
發生地點
Description
Nvarchar(2000)
描述
ExpireDate
Datetime
有效日期
Portal_HtmlText:靜態HTML資訊表(在顯示靜態靜態HTML的模組中用,可用於顯示新聞等文本)
欄位名
類型
含義
備忘
ModuleID
Int
所屬模組ID
決定該靜態HTML在那個模組中顯示(主鍵,限定一個模組只對應一個靜態HTML檔案)
DesktopHtml
Ntext
案頭HTML內容
MobileSummary
Ntext
移動摘要
在“行動裝置瀏覽器”上顯示的摘要
MobileDetails
Ntext
移動細節
在“行動裝置瀏覽器”上顯示的細節
Portal_Links:連結資訊表(快速連結模組和串連模組用)
欄位名
類型
含義
備忘
ItemID
Int
連結Id
主鍵(自動編號)
ModuleID
Int
所屬模組ID
決定該連結在那個模組中顯示
CreatedByUser
Nvarchar(100)
建立者
記錄建立和修改該連結的使用者
CreatedDate
Datetime
建立時間
記錄建立和修改該連結的時間
Title
Nvarchar(100)
名稱
Url
Nvarchar(250)
連結地址
MobileUrl
Nvarchar(250)
手機連結地址
ViewOrder
Int
排序號
Description
Nvarchar(2000)
描述
Portal_Roles:角色資訊表(門戶網站引擎核心表)
欄位名
類型
含義
備忘
RoleID
Int
角色Id
主鍵(自動編號)
PortalID
Int
門戶網址ID
可架設多個門戶網站而共用一個資料庫,通過PortalID區分
RoleName
Nvarchar(50)
角色名稱
採用MD5的加密方式儲存
Portal_UserRoles:使用者角色關係表(門戶網站引擎核心表)
欄位名
類型
含義
備忘
UserID
Int
使用者Id
關聯使用者資訊表(Portal_Roles)
RoleID
Int
角色Id
管理角色資訊表(Portal_Users)
Portal_Users:使用者資訊表(門戶網站引擎核心表)
欄位名
類型
含義
備忘
UserID
Int
使用者Id
主鍵(自動編號)
Name
Nvarchar(50)
使用者姓名
Password
Nvarchar(50)
密碼
採用MD5的加密方式儲存
Email
Nvarchar(100)
使用者Email
用於登入,並設定成唯一性索引(可防止註冊相同的Email,這樣設定後當有相同的Email插入時程式就會拋出異常,捕獲這個異常就可判斷Email是否重複,這樣就可以省掉判斷Email是否重複的代碼)
資料庫中的預存程序:
預存程序名稱
說明
Portal_AddAnnouncement
添加新公告
Portal_AddContact
添加新連絡方式
Portal_AddEvent
添加新事件
Portal_AddLink
添加新連結
Portal_AddMessage
建立一條新的討論留言,其中@ParentID的參數為被回複留言的Id,通過該ID找到該留言的DisplayOrder,加上新增留言的時間就是新留言的DisplayOrder。
Portal_AddRole
添加角色資訊
Portal_AddUser
添加一個新使用者,返回使用者的Id
Portal_AddUserRole
添加使用者角色關係
Portal_DeleteAnnouncement
刪除公告資訊(註:以下刪除部分若無特殊說明均為刪除指定ItemID的資訊)
Portal_DeleteContact
刪除連絡方式
Portal_DeleteDocument
刪除使用者上傳文檔
Portal_DeleteEvent
刪除事件資訊
Portal_DeleteLink
刪除連結資訊
Portal_DeleteModule
當刪除一個模組時,聯動的刪除該模組相關的全部資訊
Portal_DeleteRole
刪除角色資訊
Portal_DeleteUser
刪除使用者
Portal_DeleteUserRole
刪除角色使用者關係
Portal_GetAnnouncements
根據ModuleID(模組ID)返回有效期間內的公告資訊
Portal_GetAuthRoles
像是沒有用到該預存程序,而且該預存程序涉及的表資料庫中沒有(在使用者設定檔中有類似的表),需要在深入研究
Portal_GetContacts
根據ModuleID(模組ID)返回連絡方式
Portal_GetDocumentContent
根據文檔的(ItemID)擷取儲存在資料庫中的文檔資訊
Portal_GetDocuments
根據ModuleID(模組ID)返回使用者上傳文檔資訊
Portal_GetEvents
根據ModuleID(模組ID)返回有效期間內的事件資訊
Portal_GetHtmlText
根據ModuleID(模組ID)返回靜態HTML文本資訊
Portal_GetLinks
根據ModuleID(模組ID)返回串連資訊,並按(ViewOrder)排序號排序
Portal_GetNextMessageID
擷取討論的下一條留言
Portal_GetPortalRoles
擷取指定門戶網站(指定PortalID)的全部角色資訊
Portal_GetPrevMessageID
擷取討論的上一條留言
Portal_GetRoleMembership
根據角色ID擷取該角色對應的使用者成員資訊
Portal_GetRolesByUser
根據使用者Email擷取使用者角色資訊
Portal_GetSingleAnnouncement
根據公告的(ItemID),擷取單個公告的資訊
Portal_GetSingleContact
根據連絡方式的(ItemID),擷取單個連絡方式的資訊
Portal_GetSingleDocument
根據文檔的(ItemID),擷取單個文檔的資訊
Portal_GetSingleEvent
根據事件的(ItemID),擷取單個事件的資訊
Portal_GetSingleLink
根據連結的(ItemID),擷取單個連結的資訊
Portal_GetSingleMessage
根據留言的(ItemID),擷取單個留言的資訊
Portal_GetSingleRole
根據角色ID,擷取單個角色的資訊
Portal_GetSingleUser
根據使用者Email,擷取單個使用者的資訊
Portal_GetThreadMessages
根據父留言資訊的DisplayOrder,返回按時間順序和回複關係返回子留言資訊
Portal_GetTopLevelMessages
根據ModuleID(模組ID)返回頂層留言資訊
Portal_GetUsers
擷取全部的使用者資訊,並按Email排序
Portal_UpdateAnnouncement
更新公告資訊
Portal_UpdateContact
更新連絡方式資訊
Portal_UpdateDocument
更新文檔資訊,當未找到指定文檔ID時添加新的文檔資訊
Portal_UpdateEvent
更新事件資訊
Portal_UpdateHtmlText
更新靜態HTML文本資訊
Portal_UpdateLink
更新指定的串連資訊
Portal_UpdateRole
更新角色資訊
Portal_UpdateUser
更新使用者資訊
Portal_UserLogin
根據email和password返回登入的使用者姓名(用於判斷使用者登入是否通過)