《BBS 论坛的设计与实现》
第 1页 共 15 页
1 引言
1.1 课程设计的目的
数据库课程设计是数据库系统原理实践环节的极为重要的一部分.其目是:
(1) 培养学生能够应用数据库系统原理在需求分析的基础上对系统进行概念设计,
学会设计局部 ER,全局 ER 图;
(2)培养学生能够应用数据库系统在概念设计的基础上应用关系规范化理论对系统
进行逻辑设计,学会在 ER 图基础上设计出易于查询和操作的合理的规范化关系模型;
(3)培养学生能够应用 SQL 语言对所设计的规范化关系模型进行物理设计,并且能够
应用事务处理,存储过程,触发器以保证数据库系统的数据完整性,安全性,一致性,保证
数据共享和防止数据冲突;
(4)培养学生理论与实际相结合能力, 培养学生开发创新能力;
(5)提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序
员过渡。
1.2 课程设计的意义
目前,我国在计算机应用、计算机软件和电子类相关专业的人才培养方面,取得了
长足的发展,但同时也让我们深刻地感觉到缺乏实际开发设计项目的经验,不善与综合
运用所学理论,对知识的把握缺乏融会贯通的能力。本次课程设计是在我们学完了数据
库基础之后开展的,通过此次数据库课程设计,可以让我们把书本上的理论知识用于实
践中去,对数据库表的各种操作能真正的理解,在设计的过程中,会出现很多问题是我
们想不到的,书上也从来没有的,通过实践,提高了我们解决实际问题的能力。本次我
的课题的做一个论坛,现在论坛随处可见,应用范围广,一定程度上对互联网的发展做
了一定的贡献,此次通过对论坛的设计,可以让自己所学的知识融入到实际生活。
《BBS 论坛的设计与实现》
第 2页 共 15 页
2 系统结构分析
2.1 需求分析
BBS 论坛是随着互联网的出现而发展起来的,它具有高度开放性,任何人都可以在
上面发表自己的观点,是一个在网络上交流的地方,可以发表一个主题,让大家一起
来探讨,也可以提出一个问题,大家一起来解决等,是一个人与人语言文化共享的
平台,具有实时性、互动性。
经过综合分析,确定了本论坛主要包括以下功能:
(1) 添加、修改及删除板块功能:
此功能必须要在数据库中进行修改,所以执行此功能的用户必须具有对数据库
进行完全操作的权限,如论坛创建者。主要包括以下两个功能:
添加新的板块;
修改、删除板块;
(2) 显示与添加各板块主题功能:
此模块的主要功能包括:
选择一个板块后,查看此板块中已经发表的主题;
选择一个板块后,自己为此板块添加新的主题;
(3)对各主题进行回复功能:
此模块的主要功能包括:
查看板块的主题后,可以对此主题进行评论回复;
(4)对各主题查看数及回复数进行自动更新功能:
此模块的主要功能包括:
自动记录各主题被查看的次数;
自动记录各主题被回复的次数;
2.2 功能模块图
1.根据上述的功能,可以设计出此论坛的总体功能模块,如图 2.1 所示。
BBS 论坛
《BBS 论坛的设计与实现》
第 3页 共 15 页
板
块
管
理
模
块
主
题
管
理
模
块
回
复
管
理
模
块
数
据
更
新
模
块
图 2.1 BBS 论坛功能模块示意图
2.板块管理模块用于对板块进行添加,删除,修改操作。其功能模块如图 2.2 所
示。
板块管理
添
加
新
板
块
修
改
板
块
删
除
板
块
3.主题管理模块用于查看某板块的主题、发表新的主题,其功能模块如图 2.3 所
图 2.2 版块管理模块
示。
主题管理
查看一个板块所有主题
在板块中发表新的主题
图 2.3 主题管理模块
4.回复管理模块用于回复主题。其功能模块如图 2.4 所示。
《BBS 论坛的设计与实现》
第 4页 共 15 页
回复管理
回复主题
图 2.4 回复管理模块
3 数据库设计
3.1 概念结构设计
《BBS 论坛的设计与实现》
第 5页 共 15 页
根据需求分析抽象出信息结构,可得各个模块的 E-R 图。
(1)板块 E-R 图,如图 3.1 所示。
序号
板块标题
板块
创建日期
版主
图 3.1 板块 E-R 图
(2)主题 E-R 图,如图 3.2 所示。
板块主题
主题序号
板块序号
主题标题
内容
主题
帖子作者
查看数
日期
回复数
图 3.2 主题 E-R 图
(3)回复 E-R 图,如图 3.3 所示。
回复序号
回复日期
回复标题
回复
回复人姓名
《BBS 论坛的设计与实现》
第 6页 共 15 页
图 3.3 回复 E-R 图
(4)根据需求分析和分 E-R 图,得到总的 E-R 图,如图 3.4 所示。
板块
1
包含
n
主题
1
拥有
回复
n
图 3.4 总体 E-R 图
3.2 逻辑结构设计
根据上述的概念结构设计出逻辑结构,将 E-R 图转换为关系模型。
数据库 userss 包含以下 3 个表:板块信息表 blocksforum、主题信息表 topicsforum、
回复信息表 repliesforum。
(1)板块信息表 blocksforum
板块信息表 blocksforum 用来保存所建板块的标题、板块创建日期、板块版主等信
息。表 blocksforum 的结构如表 3-1 所示。
列名
blockid
blocksubject
blockdate
authorname
表 3-1 表 blocksforum 的结构
数据类型
长度
允许空
说明
int
varchar
Datetime
Varchar
4
50
8
50
否
否
是
是
板块编号、主键
板块的标题
板块创建日期
板块版主
《BBS 论坛的设计与实现》
第 7页 共 15 页
(2)主题信息表 topicsforum
主题信息表 topicsforum 用来保存所建主题的标题、主题创建日期、主题内容等信
息。表 topicsforum 的结构如表 3-2 所示。
表 3-2 表 topicsforum 的结构
列名
数据类型
长度
允许空
说明
topicid
topicsubject
topiccontent
topicdate
repliescount
viewedcount
authorname
blockid
blocksubject
int
varchar
varchar
datetime
int
int
varchar
int
varchar
4
50
50
8
4
4
50
4
50
否
否
是
是
是
否
是
否
否
主题序号、主键
主题标题
主题内容
主题发表日期
回复数
查看数
主题的作者
所属板块序号
所属板块标题
(3)回复信息表 repliesforum
回复信息表 repliesforum 用来保存回复标题、回复日期、回复作者等信息。表
repliesforum 的结构如表 3-3 所示。
列名
replyid
replysubject
replycontent
replydate
表 3-3 表 repliesforum 的结构
数据类型
长度
允许空
说明
int
varhar
varchar
datetime
4
50
50
8
否
否
是
是
回复序号、主键
回复的标题
回复的内容
回复的日期
《BBS 论坛的设计与实现》
authorname
topicid
varchar
int
50
4
是
否
第 8页 共 15 页
回复的作者
所属主题序号
上面各表的非主属性是相互独立的,对表的插入,删除,查找等操作都是正常的,
所有模式都符合 3NF。
3.3 数据库表的建立
在设计数据库表结构之前,首先要创建一个数据库。本系统使用的数据库为 userss。
可以在企业管理器中创建数据库,也可以在查询分析器中执行以下 Transact—SQl 语句:
create database userss
go
(1). 创建表 blocksforum
创建表 blockforum(板块信息表),它的代码如下:
use userss
go
craeate table blocksforum
int(4)
varchar(50),not null
datetime(8)
varchar(50)
(blockid
blocksubject
blockdate
authorname
primary key,
)
go
(2).创建表 topicsforum
创建表 topicsforum(主题信息表),它的代码如下:
use userss
go
create table topicsforum
not null
primary key,
(topicid
topicsubject
topiccontent
topicdate
repliescount
viewedcount
authorname
blockid
blocksubject
foreign key(blockid) references blocksforum(blockid),
int(4)
varchar(50),
archar(50)
datetime(8)
int(4)
int(4)
varchar(50)
int(4)
varchar(50)
not null
not null
nou null