通过上节的系统结构分析,明确的系统的功能需求,数据库需求设计也变得更加清晰。在系统中最主要的是日志信息的存储,例如日志的类别、日志名称、日志的内容等。其次,是日志的附加信息,即日志的评论内容,阅读次数等。
最终确定系统需要使用3
个表完成。我们在SQL Server 2005
中,建立这些数据表,数据库名称为myLog
。这些表的名称、描述以及包含字段的说明如下:
l Infosort表
Inforsort
表保存的是日志的类别信息,包括3
个字段如表1-2
所示。
表1-2 infoSort
表
字段
|
数据类型
|
长度
|
允许空
|
备注
|
id
|
int
|
4
|
否
|
日志类别标识,
自增长
|
sortName
|
varchar
|
30
|
是
|
日志类别名称
|
sortDate
|
smalldatetime
|
默认
|
是
|
类别创建时间
|
l Info表
Info
表存储了日志的主要信息,包括有日志的标题、摘要、正文内容、作者的昵称、发表时间及IP
地址等,如表1-3
所示。
表1-3 info
表
字段
|
数据类型
|
长度
|
允许空
|
备注
|
id
|
int
|
4
|
否
|
日志标识,
自增长
|
title
|
varchar
|
200
|
是
|
日志标题名称
|
author
|
varchar
|
50
|
是
|
作者昵称
|
abstract
|
nvarchar
|
max
|
是
|
摘要
|
content
|
nvarchar
|
max
|
是
|
正文内容
|
sortID
|
int
|
默认
|
是
|
类别编号
|
replyCount
|
int
|
默认
|
是
|
评论数量
|
link
|
varchar
|
100
|
是
|
链接
|
date
|
datetime
|
默认
|
是
|
发表日期
|
IP
|
char
|
20
|
是
|
IP
地址
|
hits
|
int
|
默认
|
是
|
阅读次数
|
homeTop
|
smallint
|
默认
|
是
|
置顶显示
|
url
|
Varchar
|
200
|
是
|
引用地址
|
l Comment表
Comment
保存的是除日志类别和日志主体信息之外的评论数据,评论中保存了日志的编号、评论内容、署名和日期等,如表1-4
所示。
表1-4 comment
表
字段
|
数据类型
|
长度
|
允许空
|
备注
|
id
|
int
|
4
|
否
|
评论标识,
自增长
|
author
|
char
|
50
|
是
|
评论署名
|
content
|
nvarchar
|
max
|
是
|
评论内容
|
sortID
|
int
|
默认
|
是
|
日志编号
|
date
|
datetime
|
默认
|
是
|
发表日期
|
IP
|
char
|
20
|
是
|
IP
地址
|
url
|
Varchar
|
200
|
是
|
引用地址
|
根据系统分析的结果,我们创建了以上三个与日志有关的表。细心的读者会发现还缺少一个很重要的表,即存储日志管理员信息的表。下面就来介绍它,由于通常这个表的记录和字段都比较少,因此这里将管理员的信息存储到数据库以外——XML
文件中。
但是我们知道,XML
文件可以使用任何文本编辑器打开,这样不是就暴露密码了吗?答案是否定的,因为这里我们为密码进行了加密操作,只有知道密钥才可以看到密码。如下所示即为本例中所采用的管理员XML
文件:
<?xml version="1.0" encoding="utf-8"?>
<adminlist>
<list>
<adminid>1</adminid>
<adminname>21232F297A57A5A743894A0E4A801FC3</adminname>
<adminpwd>21232F297A57A5A743894A0E4A801FC3</adminpwd>
</list>
</adminlist>
XML
的文件名为admin.xml
,保存在站点根目录的images
子目录中。如上面所示,其中adminname
节点为管理员用户名,adminpwd
节点为管理员密码,从直观上已经很难分辩出原始数据。