解读ASP.NET Portal Starter Kit(1)——数据库篇

80酷酷网    80kuku.com

  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返回登录的用户姓名(用于判断用户登录是否通过)




 

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: