数据库课程设计.docx
《数据库课程设计.docx》由会员分享,可在线阅读,更多相关《数据库课程设计.docx(39页珍藏版)》请在冰豆网上搜索。
数据库课程设计
引言:
3
一.课题目的3
二.开发环境与工具3
2.1平台选择3
2.2系统开发工具3
2.3开发语言—JSP3
2.4数据库—MicrosoftSQLServer20004
三.系统需求分析4
3.1BBS介绍4
3.1.1注册为会员,系统登录4
3.1.2发帖,回帖,浏览帖子4
3.1.3.帖子管理5
3.2功能模块图5
3.2.1整体功能模块图5
3.2.2功能模块细化图5
3.2.3.业务流程6
3.3.E-R图设计7
3.3.1主题帖实体7
3.3.2回帖实体8
3.3.3会员实体8
3.3.4管理员实体9
3.3.5实体联系图:
9
3.4数据库结构设计10
四.主界面设计11
4.1主界面的界面效果及部分相关代码11
4.2数据库SQL语句:
27
4.3各文件详细情况:
28
五.总结30
小型BBS论坛
引言:
电子公告板(BBS)是Internet上一种全网开放的服务。
BBS上支持分类讨论区、双人对谈、多人聊天及电子邮件等多种功能。
用户可以在BBS上留言,选择在某个讨论区中阅读其他用户留下的文章、问题和建议,也可以在讨论区中发表文章、回复解答他人的问题等。
BBS中的讨论区涵盖的内容非常广泛,如:
软件开发、技术交流、生活经验、游戏心得、媒体信息反馈等,而且讨论不受时间、空间的限制。
BBS上的用户往往会对讨论区中的某个话题展开激烈的讨论。
在BBS里,人们之间的交流打破了空间、时间的限制。
在与BBS上其他用户进行交流时,无须考虑自身的年龄、学历、知识、社会地位、财富、外貌,健康状况等,而这些条件往往是人们在其他交流形式中无可回避的;同样地,用户也无从知道交谈的对方的真实社会身份,这样,参与BBS的人可以处于一个平等的位置与其他人进行任何问题的探讨。
一般的BBS都会具有以下的基本功能:
发表文章;浏览文章;对用户的文章进行分类整理、索引,方便用户快速找到所需的资料。
一.课题目的
灵活地把所学的理论知识和技能应用于该项目的开发实践中,从而加深项目开发与管理的深刻含义
二.开发环境与工具
2.1平台选择
Microsoft软件是日常生活中使用最为广泛的软件,基于这一特点,我们选用的平台是JavaServerPage(简称JSP)+SQL2000数据库,它适应于Windows操作系统并能很好的与其应用程序结合,而且SQLServer2000数据库也易操作,从而大大降低了编程难度。
具体如下:
采用了Internet架构,Bowser/Server模式。
Web服务器采用Tomcat6.0服务器,数据库管理系统为SQLServer2000。
开发工具使用Dreamweaver搭建系统页面框架,再用MyEclipse在其中插入JSP语句,JavaBean使用MyElipse编写。
2.2系统开发工具
本系统是基于JSP+SQLServer2000数据库技术实现的,现对JSP技术和SQLServer2000数据库作简要的介绍。
2.3开发语言—JSP
JSP页面由HTML代码和嵌入其中的Java代码所组成。
JavaBean是JSP的技术基础,而且大型的Web应用程序的开发需要JavaBean和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网等特点。
JSP的技术的优势:
一次编写,到处运行。
在这一点上Java比PHP更出色,除了系统之外,代码不需要做任何更改。
系统的多平台支持。
基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相比ASP/PHP的局限性是显而易见的。
JSP技术是用Java语言作为脚本语言的。
Java语言是成熟的、强大的、易扩充的编程语言。
高效性与安全性。
JSP在执行前先被编译成字节码,字节码由Java虚拟机解释执行,比源码解释效率高。
可维护性。
由于JSP技术是一种开放的、跨平台的结构,因此Web服务器、平台及其他组件能很容易升级或切换,且不会影响JSP基本的应用程序。
多样化和功能强大的开发工具支持。
Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
2.4数据库—MicrosoftSQLServer2000
SQLServer是一个关系数据库管理系统。
SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的较新版本。
SQLServer2000数据库引擎提供完整的XML支持。
它还具备构成最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全功能。
SQLServer2000关系数据库引擎支持当今苛刻的数据处理所需的功能。
数据库引擎充分保护数据完整性,同时将管理众多并发修改数据库的用户的开销减到最小。
SQLServer2000分布式查询使得以引用来自不同数据源的数据,就好像这些数据是SQLServer2000数据库的一部分,同时分布式事务支持充分保护分布式数据更新的完整性。
三.系统需求分析
3.1BBS介绍
随着网络的快速发展,网上交流已经成为现代人生活中的重要组成部分,网上交流是大家针对一个问题可以发表自己不同的见解,同时通过浏览他人的见解可以拓宽自己的知识面。
网上交流让问题变得更有深度,而不是仅仅局限于一个方面,反应了当代人的思想变化以及精神追求。
在这种条件下,BBS论坛应运而生。
BBS论坛主要是用来网上交流意见的,有人提出一个问题或者见解,他人可以针对不同的方面提出自己的见解。
但是为了保证论坛的安全性,不是任何人都能够发表帖子、回复帖子的,必须是以会员的身份进入系统后,才能够发表。
回复帖子。
因此BBS论坛将用户划分为三类人:
普通游客(非会员),普通会员,管理人员。
一个基本的BBS论坛,可以大致分为以下流程:
用户登录进入论坛(一般为游客,有时还要注册为会员),就某个话题(帖子的主题)展开讨论。
通过发帖功能发布新的话题;通过回帖功能回复已有的话题;管理员通过管理功能创建、编辑、删除论坛的版块;管理注册的用户;管理帖子等。
通过分析,该系统应该能够完成以下的这些功能:
3.1.1注册为会员,系统登录
未注册用户是无权发表帖子和回复帖子的,进入界面后,只显示已经存在的帖子,以供未注册用户浏览。
当注册为会员后,通过会员登录系统(该系统指的是发帖、回帖的系统),匹配正确后才能进入论坛发表、回复、浏览帖子。
3.1.2发帖,回帖,浏览帖子
未注册用户是不能够进入发帖、回帖系统的,只能够浏览帖子。
会员可以根据自己的理解发表帖子或者回复已经存在的帖子。
同时会员一旦发表了新帖,就不能删除该帖子,会员不具有删除帖子功能,防止某些会员恶意扰乱论坛。
3.1.3.帖子管理
这项功能由管理员完成,只有具有管理员身份的人才能删除帖子,管理员通过管理员后台功能实现,能够看到一切可以看到的帖子,可以随便删除帖子。
同时管理员只能删除而不能编辑任意会员发表的帖子。
防止不负责管理员对论坛进行恶意破坏。
3.2功能模块图
3.2.1整体功能模块图
如图1.1所示,为系统整体功能模块图,分为两大部分,前台功能和后台功能。
其中,根据参与者的身份又把前台功能分为普通游客和普通会员的功能,后台功能为管理员的功能。
3.2.2功能模块细化图
如图1.2、1.3、1.4、1.5所示,分别为各参与者具有的功能的细化图。
图1.1系统功能整体功能模块图
图1.2普通游客功能模块图
图1.2普通会员功能模块图
图1.2管理员功能模块图
3.2.3.业务流程
3.3.E-R图设计
3.3.1主题帖实体
3.3.2回帖实体
3.3.3会员实体
3.3.4管理员实体
3.3.5实体联系图:
3.4数据库结构设计
根据E-R图,转换成关系模式:
主题帖(帖子编号、发帖人编号、帖子标题、帖子内容、发帖时间)
回帖(帖子编号、主题帖编号、发帖人编号、帖子内容、发帖时间)
会员(会员编号、会员名字、登陆密码、注册邮箱)
管理员(管理员编号、管理员名字、登陆密码)
主题帖表(topic)表结构
列名
数据类型
长度
是否允许为空值
说明
id
整型(int)
6
×
主题帖的编号,主键
authorid
整型(int)
6
×
发帖人的编号
title
字符型(char)
10
√
帖子标题
content
文本型(text)
最大
√
帖子内容
ptime
日期(datatime)
12
√
发帖时间
回帖表(reply)表结构
列名
数据类型
长度
是否允许为空值
说明
id
整型(int)
6
×
回帖的编号,主键
rootid
整型(int)
6
×
回复的主题帖的编号
userid
整型(int)
6
×
发帖人的编号
content
文本型(text)
最大
√
帖子内容
ptime
日期(datatime)
12
√
发帖时间
会员表(bbsuser)表结构
列名
数据类型
长度
是否允许为空值
说明
id
整型(int)
6
×
会员编号,主键
username
字符型(char)
30
√
会员名字
password
整型(int)
8
√
登录密码
email
字符型(char)
30
√
用户邮箱
管理员(bbsadmin)表结构
列名
数据类型
长度
是否允许为空值
说明
id
整型(int)
6
×
管理员编号,主键
username
字符型(char)
30
√
管理员名字
password
整型(int)
8
√
登录密码
四.主界面设计
4.1主界面的界面效果及部分相关代码
主界面上面呈现的是一张咸宁学院的logo,中间一条为用户是否需要登
录,或登陆后的移动会员名。
在下面就是发帖按钮。
BBSIndex.jsp:
主页面文件,位于根目录下。
主要功能是显示该论坛的所有主题帖。
该页面具有分页显示功能,非会员不能发表新帖。
BBSShowDetail.jsp:
该页面是一个用来呈现主题帖内容以及该主题帖下的所有回复的,具有分页显示功能,用户可以选择跳转到自己想浏览的页面,在该页面下回复主题帖,回复成功后可以跳转到回复钱浏览的页面。
主要效果如下:
BBSReply.jsp:
回复主题帖的JSP.在该页面下的回复页面效果如下:
<%@pagecontentType="text/html;charset=utf-8"pageEncoding="utf-8"%>
<%@pageimport="java.sql.*,BBS.bean.post.*"%>
useBeanid="DBDemo"class="BBS.bean.post.DB">
useBean>
<%
inttopicId=Integer.parseInt(request.getParameter("topicId"));
Stringtitle=DBDemo.getTopicTitle(topicId);
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
BBS
--fckeditor-->
window.onload=function()
{
varsBasePath="<%=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+request.getContextPath()+"/fckeditor/"%>"
varoFCKeditor=newFCKeditor('content');
oFCKeditor.BasePath=sBasePath;
oFCKeditor.ReplaceTextarea();
}
--endoffckeditor-->
主题: <%=title%> |
"/>--需要回复的topic的id号-->
标题:
内容:
|
//<%=request.getServerName()+": "+request.getServerPort()+"/"+request.getContextPath()+"/"%>servlet/ShowReply? topicId=<%=topicId%>"> | //<%=request.getServerName()+": "+request.getServerPort()+"/"+request.getContextPath()+"/"%>servlet/ShowReply? topicId=<%=topicId%>">返回到主题列表 |