当前位置:文档之家› BBS论坛数据库设计

BBS论坛数据库设计

武汉理工大学华夏学院课程设计报告书课程名称:数据库原理与应用题目:BBS论坛数据库设计开发系名:信息工程系专业班级:计网2093班姓名:王博学号: 10225509314指导教师:刘春燕2011 年 7 月 1 日课程设计任务书学生姓名:王博专业班级:计网2093指导教师:刘春燕工作单位:信息工程系设计题目:BBS论坛数据库设计开发要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.创建数据库 BBS,数据表,并建立主外键、约束、建立表测试数据;2.创建视图3.实现以下功能:(1)简单查询;(2)连接查询;(3)嵌套查询;(4)创建触发器;(5)创建存储过程;+设计报告撰写格式要求:1、明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法。

严格要求自己,要独立思考,按时、独立完成课程设计任务。

2、设计报告:要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。

设计报告正文字数不少于0.2万字(不包括附录)时间安排:消化资料、系统调查 1天系统分析、总体设计,实施计划、撰写报告3天演示、验收 1天指导教师签字:2011年7 月 1 日系主任签字:2011 年7 月 1 日课程设计报告书第一章需求分析1.1 BBS的功能与应用需求1.1.1BBS的功能论坛又名BBS,全称为Bulletin Board System(电子公告板)或者Bulletin Board Service(公告板服务)。

它是Internet上的一种电子信息服务系统。

它提供一块公共电子白板,每个用户都可以在上面书写,可发布信息或提出看法。

它是一种交互性强,内容丰富而即使的电子信息服务系统。

用户在BBS站点上可以获得各种信息服务、发布信息、进行讨论、聊天等等。

像日常生活中的黑板报一样,论坛按不同的主题分为许多版块,版面的设立依据是大多数拥护的要求和喜好,用户可以阅读别人关于某个主题的看法,也可以将自己的想法毫无保留地帖到论坛中。

随着计算机网络技术的不断发展,BBS论坛的功能越来越强大,目前BBS的主要功能有以下几点:(1) 供用户自我选择阅读若干感兴趣的专业组和讨论组内的信息。

(2) 可随意检查是否有新消息发布并选择阅读。

(3) 用户可在站点内发布消息或文章供他人查阅。

(4) 用户可就站点内其他人的消息或文章进行评论。

(5) 同一站点内的用户互通电子邮件, 设定好友名单1.1.2应用需求现实生活中的交流存在时间和空间上的局限性,交流人群范围的狭小,以及间断的交流,不能保证信息的准确性和可取性。

因此,用户需要通过网上论坛也就是BBS的交流扩大交流面,同时可以从多方面获得自己的及时需求。

同时信息时代迫切要求信息传播速度加快,局部范围的信息交流只会减缓前进的步伐。

BBS系统的开发能为分散于五湖四海的人提供一个提供一个共同交流、学习、倾吐心声的平台,实现来自不同地方用户的极强的信息互动性,用户在获得自己所需要的信息的同时也可以广交朋友拓展自己的视野和扩大自己的社交面。

1.2需求设计根据BBS的功能与应用需求的简要介绍,可以得出设计BBS系统所要的基本实体有BBSUser(用户)、BBSSection(版块)、BBSTopic(主贴)、BBSReply(回复贴)。

1.3数据字典表1-3-1BBSUsers 用户信息表表1-3-2BBSTopic主贴信息表格表1-3-3BBSSection板块信息表1-3-4BBSReply回帖信息表第二章概要设计2.1基本概念介绍⑴实体:现实世界中的各种事物的抽象。

实体可以是具体的各种事物,如学生、教师、仓库、图书馆等;也可以是抽象的概念,如课程、部门、学校等。

⑵联系:两个实体集之间的联系。

可以分为三类:①一对一联系(1:1)如果对于实体集A中的每一个实体,实体集B中最多有一个实体与之联系,反之亦然,则称实体集A和实体集B具有一对一联系,记作1:1。

②一对多联系(1:n)如果对于实体集A中的每一个实体,实体集B中最多有n(n≧1)个实体与之联系,对于实体集B中的每一个实体,实体集A中最多有一个实体与之联系,则称实体集A和实体集B 具有一对多联系,记作1:n。

③多对多联系(m:n)如果对于实体集A中的每一个实体,实体集B中最多有n(n≧1)个实体与之联系,对于实体集B中的每一个实体,实体A中最多有m(m≧1)个实体与之联系,则称实体集A和实体集B具有多对多联系,记作m:n。

⑶属性:描述实体特征或性质。

如学生实体的属性有:学号、姓名、性别、年龄等。

课程实体的属性有:课程号、课程名、学分等。

2.2实体E-R图2.2.1用户E-R图2.2.2主贴E-R图2.2.3版块E-R图2.2.4回帖E-R图2.3实体总体E-R图3.2实体联系图第三章详细设计3.1程序设计3.1.1创建数据库create database BBSon primary(name = BBS_data, --逻辑名filename ='d:\BBS_data.mdf', --物理文件size = 20MB, --初始大小filegrowth=10%, --文件增长率maxsize = 200MB --初始大小)log on(name =bbs_log, --逻辑名filename ='d:\bbs_data.ldf', --物理文件size =10mb, --初始大小filegrowth = 10%,--文件增长率maxsize = 100MB --最大尺寸)3.1.2创建用户表create table BBSUsers(UID int constraint pk_UID primary key,--用户编号UName char(8) not null, --用户姓名UPassword char(16) constraint df_UPassword default '888888',--用户密码UEmail char(20) not null constraint ck_Uemail check(UEmail like'%@%.%'),--用户Email UBirthday datetime not null,--用户生日Usex int constraint df_Usex default '1', --用户性别UClass int constraint df_UClass default '1', --用户等级UStatement varchar(150)not null, --用户说明URegDate datetime not null default getdate(), --用户注册时间UState tinyint constraint df_UState default '1', --用户状态UPoint int constraint df_UPoint default '20' , --用户积分constraint ck_UPassword check(UPassword like '______'))3.1.3创建版块表create table BBSSection(SID int constraint pk_SID primary key,--版块编号SName char(20),--版块名称SMasterID int, --版主编号SStatement varchar(100), --版块说明SClickCount int constraint df_SClickCount default '0', --版块点击次数STopicCount int constraint df_STopicCount default '0' --版块主题数)3.1.3创建主贴表create table BBSTopic(TID int constraint pk_tid primary key, --主贴编号TSID int not null, --主贴板块编号TUID int not null, --主贴用户编号TReplyCount int not null, --主贴回复次数TEmotion char(10) not null, --主贴表情TTopic varchar(16) not null CONSTRAINT ck_TTopic check(TTopic not like'%''%'), --主贴标题TContents text not null, --主贴内容TTime datetime not null default getdate() ,--发帖时间TClickCount int not null, --主贴点击次数TLastClickT datetime not null ,CONSTRAINT [CK_TLC] CHECK ([TLastClickT]>=TTime) --主贴最后点击时间)3.1.4创建回复贴表create table BBSReply(RID int constraint pk_RID primary key,--回复编号RTID int,--回复帖子编号RSID int,--回复版块编号RUID int,--回复用户编号REmotion char(10),--回复表情RTopic varchar(20),--回帖主题RContents text,--回帖内容RTime datetime default getdate(),--回帖时间RClickCount int,--回帖点击次数)3.1.5创建各表之间的联系--建立联系alter table BBSTopicadd constraint fk1_BBSTopic_BBSUsers foreign key(tuid) references BBSUsers(UID) --一个用户可以发表多篇主帖内容alter table BBSReplyadd constraint fk1_BBSReply_BBSTopic foreign key(RTID) references BBSTopic(TID) --一篇主帖能够对应多条回帖alter table BBSReplyadd constraint fk1_BBSReply_BBSUsers foreign key(RUID) references BBSUsers(UID) --一个用户可以发表多条回帖内容alter table BBSTopicadd constraint fk1_BBSTopic_BBSSection foreign key(TSID) references BBSSection(SID) --一个版块可以包含多篇主帖alter table BBSReplyadd constraint fk1_BBSReply_BBSSection foreign key(RSID) references BBSSection(SID) --一个版块可以包含多篇回帖alter table BBSSectionadd constraint fk1_BBSSection_BBSUsers foreign key(SMasterID) references BBSUsers(UID) --一个用户可以管理多个版块3.1.6插入用户信息(注册新用户)insertintoBBSUsers(UID,UName,UPassword,UEmail,UBirthday,USex,UClass,UStatement,URegDate,USta te)values('1001' ,'无敌游客','159357','auroral@','1991-5-12','1','','疯子','2010-5-7','2')insertintoBBSUsers(UId,UName,UPassword,UEmail,UBirthday,USex,UClass,UStatement,URegDate,UStat e,UPoint)values('1002' ,'熬吧马','654321','shanhu@','1989-8-30','1','','爱吧','2011-4-7','2','25') insertintoBBSUsers(UID,UName,UPassword,UEmail,UBirthday,USex,UClass,UStatement,URegDate,USta te,UPoint)values('1003' ,'真伪遢','158664','cookie@','1992-1-3','2','','快乐','2009-5-7','2','103') insertintoBBSUsers(UID,UName,UPassword,UEmail,UBirthday,USex,UClass,UStatement,URegDate,USta te,UPoint)values('1004' ,'地球字幕','175175','ibook@','1990-7-4','2','','自我','2008-5-4','2','2') insertintoBBSUsers(UID,UName,UPassword,UEmail,UBirthday,USex,UClass,UStatement,URegDate,USta te,UPoint)values('1005' ,'无伤大雅','198755','ipd123@','1988-1-4','1','','和谐','2000-12-12','1','100')insertintoBBSUsers(UID,UName,UPassword,UEmail,UBirthday,USex,UClass,UStatement,URegDate,USta te,UPoint)values('1006' ,'回来吧主','192445','zhenmi@','1994-12-14','2','','低调','2000-12-12','1','97')insertinto BBSSection(SID,SName,SMasterID,SStatement,STopicCount)values('01' ,'灌水区','1006','有什么您就说','5')insertinto BBSSection(SID,SName,SMasterID,SStatement,SClickCount,STopicCount)values('02' ,'魔兽贴吧','1005','请不要放水贴!','4','10')3.1.8发帖insertintoBBSTopic(TID,TSID,TUID,TReplyCount,TEmotion,TTopic,TContents ,TTime,TClickCount,TLa stClickT)values('001' ,'01','1005','5',''-~','无聊来冒个泡的。

相关主题