解讀ASP.NET Portal Starter Kit(1)——數據庫篇
2024-07-10 12:56:07
供稿:網友
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返回登錄的用戶姓名(用于判斷用戶登錄是否通過)