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

      

  • 相关阅读:
    算法的定义
    用标准的CSS定义你的表格样式
    Mysql存储过程中临时表的建立及游标遍历
    Ubuntu10.0下编译qt版webkit
    指针函数的一个范例,在单片机上运用它能让您的程序结构更明朗清晰,层次感强
    你若不自己爬上来,我就把你打死在水中——分享三个跟管理有关的小故事
    Windows 上使用 Github 手记
    IIS应用程序池由服务器引起常见错误号的原因分析及解决方法
    如何实施好基于MOSS的企业搜索项目(上)
    如何做好项目经理
  • 原文地址:https://www.cnblogs.com/wenus/p/148304.html
Copyright © 2020-2023  润新知