数据库说明

请到Cannot resolve discussion macro, invalid id.讨论数据库设计。

修订历史
时间 修改者 修改内容
2007-07-09 Anders Liu 确定文档结构,编写了几个表的说明。
2007-07-10 Anders Liu 写完了所有表的说明。
2007-07-13 Anders Liu 向User表中添加了PasswordChangeVerficationCode列。
2007-07-17 Anders Liu 添加了对History_AreaVisit表的说明。

  • 实体表
    • User
    • Area
    • Content
    • File
    • Tag
  • 关系表
    • AreaContent
    • ContentTag
  • 历史表
    • History_ContentChange
    • History_ContentVisit

实体表

实体表用于存放系统中所有的数据实体。

User

User表用于记录系统中所有的用户信息,包括用户凭证信息和用户配置信息。
字段 类型 说明
UserId int identifier 用户ID。
UserName nvarchar(256) 用户名,用于登录。
LoweredUserName nvarchar(256) 小写用户名,用于方便判断。
NickName nvarchar(256) 昵称,显示名。
SecurityEmail nvarchar(256) 安全邮箱,用于登录和找回密码。
LoweredSecurityEmail nvarchar(256) 小写安全邮箱,用于方便判断。
PasswordHash nvarchar(128) 密码散列值。
PasswordSalt nvarchar(128) 加密密码时使用的salt值。有关用salt加密密码的知识在其他地方介绍。
PasswordQuestion nvarchar(256) 找回密码时的密码提示问题。
PasswordAnswer nvarchar(128) 找回密码时的密码提示问题答案。
PasswordChangeVerficationCode uniqueidentifier 找回密码时的验证码。
CreatedTime datetime 用户创建(注册)的时间。
RegisterIP varchar(64) 用户注册时的IP地址。
IsLockOut bit 用户是否已被锁定,被锁定的用户将无法登录。
LastLoginTime datetime 上一次登录的时间。
LastPasswordChangedTime datetime 上一次更改密码的时间。
ContactEmail nvarchar(256) 联系邮箱,用于发送广告和消息。
Settings nvarchar(max) 其他设置。所有与用户相关但不涉及查询的信息都放在这个字段。

Area

Area表用于存放所有区域信息,如频道、联盟、个人主页等。
字段 类型 说明
AreaId int identifier 区域ID。
UserId int 区域所有者用户ID。
Type int 区域的类型,指出区域是频道主页,还是联盟等等。
ParentAreaId int 父区域ID。如频道页面的父区域是频道主页。
AccessKey varchar(32) 该区域的访问键。访问键表示区域的子域名或路径。
LoweredAccessKey varchar(32) 小写访问键,用于方便判断。
Title nvarchar(256) 区域的标题,如频道标题。
Subtitle nvarchar(256) 区域的子标题,如频道副标题。
CreatedTime datetime 区域创建的时间。
CreatedIP varchar(64) 创建该区域时的IP。
IsDeleted bit 表示区域是否被删除。
Settings nvarchar(max) 其他设置。所有与区域相关但不涉及查询的信息都放在这个字段。

Content

Content表用于存放所有内容。如博客文章、回复、图片等。
字段 类型 说明
ContentId int _identifier 内容ID。
UserId int 创建内容的用户ID。
Type int 内容的类型,如博客文章、回复、图片等。
ParentContentId int 父内容ID。如一个回复的父内容可能是一篇博客文章。一个图片的父内容可能是一个相册等。
Title nvarchar(1024) 内容的标题。
Url nvarchar(1024) 与内容相关的URL。如未来可能加入收藏夹内容,这里可以存放一个收藏的链接。
FormattedBody nvarchar(max) 带格式的内容。这是用户输入的原始内容,有HTML标记。
PlainBody nvarchar(max) 无格式的内容。在FormattedBody的基础之上去除了HTML标记,便于做全文检索。
FileId int 与内容相关的文件ID。例如图片是一条内容,但其真正代表的图片文件位于磁盘上,而在File表中有关于该文件的详细信息。
CreatedTime datetime 创建该内容的时间。
CreatedIP varchar(64) 用户创建该内容时的IP地址。
LastUpdatedTime datetime 最近更新日期。
LastUpdatedIP varchar(64) 最近更新时的IP地址。
LastUpdatedUserId int 最近更新的用户ID。
IsDeleted bit 该内容是否已被删除。
Settings nvarchar(max) 与内容相关的其他信息,不涉及查询。

File

File表用于存放于文件相关的信息,文件与内容关联,但存储在文件系统中(磁盘上)。
字段 类型 说明
FileId int identifier 文件ID。
UserId int 文件所属的用户ID。
FileName nvarchar(1024) 文件名(不包括扩展名)。
Extension nvarchar(1024) 文件扩展名。
MimeType varchar(50) 文件的MIME类型。
UploadTime datetime 上传时间。
UploadIP varchar(64) 上传文件时的IP地址。
IsDeleted bit 该文件是否已被删除。
Settings nvarchar(max) 与文件相关的其它信息,不涉及查询。

Tag

Tag表用于存放所有内容的标签。
字段 类型 说明
TagId int identifier 标签ID。
Tag nvarchar(50) 标签的文字。
LoweredTag nvarchar(50) 小写的标签文字,便于查询。
ContributeUserId int 第一个使用该标签的用户ID。
AddedTime datetime 第一次使用该标签的时间。
AddedIP varchar(64) 第一次使用该标签的IP地址。

关系表

关系表用于存放系统中实体之间的一对多和多对多关系。

AreaContent

AreaContent表用于记录在哪个区域中发布了哪些内容。
字段 类型 说明
AreaId int 区域ID。
ContentId int 内容ID。
AddedTime datetime 将该内容添加到该区域的时间。
AddedUserId int 将该内容添加到该区域的用户ID。

ContentTag

ContentTag表用于记录向内容上添加的标签。
字段 类型 说明
ContentId int 内容ID。
TagId int 标签ID。
AddedTime datetime 添加标签的时间。
AddedUserId int 添加标签的用户ID。

历史表

历史表用于存放系统中与历史记录有关的数据。

History_ContentChange

History_ContentChange表用于存放内容更改的历史纪录。

当内容更改时,应首先将原来的内容存放在该表中,然后再对Content表作出更改。

HistoryContentChange表中的字段均来自于Content表,类型及用途完全一样。但有些字段是永远不会变化的(如内容类型、创建内容的用户等),这些字段没有出现在HistoryContentChange表中。

History_ContentVisit

History_ContentVisit表用于记录用户访问内容的历史。
字段 类型 说明
ContentId int 访问的内容ID。
VisitUserId int 访问内容的用户ID。
VisitTime datetime 访问的时间。
VisitorIP varchar(64) 访问者IP地址。
ReferUrl nvarchar(1024) 引用地址,即用户从哪个地址通过链接访问到该内容的。

History_AreaVisit

History_AreaVisit表用于记录用户访问区域的历史。
字段 类型 说明
AreaId int 访问的区域ID。
VisitUserId int 访问内容的用户ID。
VisitTime datetime 访问的时间。
VisitorIP varchar(64) 访问者IP地址。
ReferUrl nvarchar(1024) 引用地址,即用户从哪个地址通过链接访问到该内容的。

Last edited Jul 16, 2007 at 11:38 PM by AndersLiu, version 9

Comments

Ballack85 Jul 15, 2007 at 4:53 PM 
User????????????????,??????Content?????????????????????????,????????????????????