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

  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)

角色名称

 

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

根据emailpassword返回登录的用户姓名(用于判断用户登录是否通过)

   

你可能感兴趣的:(asp.net)