Java论坛管理系统论文.docx
- 文档编号:5024068
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:31
- 大小:185.54KB
Java论坛管理系统论文.docx
《Java论坛管理系统论文.docx》由会员分享,可在线阅读,更多相关《Java论坛管理系统论文.docx(31页珍藏版)》请在冰豆网上搜索。
Java论坛管理系统论文
摘要
Java论坛管理系统主要是实现在网上进行交流和学习Java语言,本论坛提供用户注册、发帖和回帖等论坛的基本功能,划分J2SE、J2EE、J2ME和开发工具的使用等版块,使用合理的管理方法管理论坛,严格保证帖子质量,为Java爱好者提供一个学习Java的好地方。
本系统采用SQL2000作为后台数据库,使用MVC框架,由Servlet负责处理最初的请求转发到jsp页面显示最后的结果,JSP页面使用bean,系统具有很好的移植性和跨平台性。
关键字:
Java论坛;管理;MVC;
目录
1引言1
2数据库设计1
2.1.1需求设计1
1、引言1
2、目标与任务1
3、阶段结果3
2.1.2概念设计6
2.1.2.1目标与任务6
2.1.2.2概念模型设计6
2.1.3逻辑设计9
2.1.3.1目标与任务9
2.1.3.2数据组织9
2.1.3.3数据处理方面12
2.1.4物理设计13
2.1.4目标与任务13
2.1.4.2数据存取方面14
2.1.4.3功能模块14
2.1.5数据库实施15
2.1.6数据库调试与试运行16
3收获与体会18
4存在问题与建议18
附录18
1.数据字典18
2.存储过程:
20
3.基本表:
24
4.视图27
5.参考资料27
1引言
随着互联网的发展,网上学习和交流已成为现代人的一种时尚,论坛是提供这种环境中的重要的部分。
但是多数论坛十分繁杂,管理不规范,帖子混杂,很难满足用户的需要。
本次课程设计的题目为Java论坛管理系统,实现了论坛的基本功能即用户的注册、用户发帖回帖、管理员管理论坛等,主要任务是完成详细的数据库的设计,为以后完整系统的设计打下坚实的基础,其它论坛扩展功能以后在实现。
本次数据库设计重视数据库理论知识的学习和数据库系统的设计,对数据库的学习有中要的意义。
2数据库设计
2.1.1需求设计
1、引言
目前Java语言比较流行,学习Java的人群也特别的多。
Java语言需要学习的内容非常多,而且Java语言也是一个不断变化的语言和完善的语言,要比较系统的学习Java,传统的一个人学习方式很难学好Java,上网学习和交流能比较好的解决此问题。
目前的论坛比较多,但比较的繁杂,大多论坛没有规范的帖子管理,对学习Java没有多大的帮助。
开发一个Java论坛管理系统就是要改变传统的学习方法和解决许多论坛管理不规范的问题。
本论坛只讨论Java技术,严格保证帖子的质量和安全问题,提供Java爱好者一个良好和舒适的交流平台。
本论坛具有很好的教育价值,同时具有很好的可重用性,稍加改变就能作为其它的论坛。
如今论坛是Internet中比较受欢迎的技术,是大多数网站不可缺少的一部分,所以论坛对网站的开发也非常有价值。
2、目标与任务
目标:
通过需求分析,充分了解用户需求,明确系统的业务流程和系统的功能,完成数据流图和数据字典等内容,为以后整个系统设计提供依据。
任务:
■处理对象:
用户信息:
(用户名,密码,邮箱,用户等级,发帖数,回帖数,是否删除)
帖子信息:
(帖子id,版面id号,主题,内容,帖子等级,帖子被访问次数,所属版面,发帖时间,发帖用户)
版面信息(版面id号,版面名称,版主名称,版面主题数)
版主信息(版主名称,密码,邮箱)
管理员信息(管理员名,密码,邮箱)
■处理功能要求:
1用户注册登录功能模块(用户注册以及修改注册信息)
2浏览功能模块(用户浏览版块、主题列表、查看帖子)
3帖子管理功能模块(管理员编辑、删除、置顶和指定精华帖)
4管理版块功能模块(管理员创建、修改和删除版块)
5用户管理模块(管理员添加、删除和设置用户权限)
■安全性和完整性要求:
安全性:
论坛管理系统是提供一个交流平台,安全问题主要是防止黑客的攻击,数据库需要运行在防火墙后面。
要防止非法用户访问数据库,对数据库进行修改,管理员需要进行合理的用户权限设置。
(1)论坛的用户分4个级别:
匿名用户、普通用户、版主和系统管理员
(2)用户在未登录前只能浏览论坛中的帖子,已登录的用户可以在已有的版块发布新主题和回复帖子。
(3)论坛为每个注册的用户建立个人资料,用户本人可以修改个人资料。
(4)版主除有普通用户的权限外,还可以对版面进行管理:
删除、推荐、锁定帖子、解除推荐、解除锁定。
(5)论坛管理员除有版主的权限外,还可以添加、删除版块,对论坛中所有版块的属性进行编辑,对用户的所有资料进行修改和删除用户。
论坛权限如下表1:
对象实体
功能方法
用户类型
版块
浏览列表
注册用户
版块
创建版块
管理员
版块
修改版块
管理员
版块
删除版块
管理员
帖子
浏览列表
注册用户
帖子
发帖
注册用户
帖子
回帖
注册用户
帖子
搜集
注册用户
帖子
编辑(自己所有)
注册用户
帖子
编辑(全部)
管理员
帖子
删除
管理员
帖子
置顶
管理员
帖子
指定精华
管理员
用户
注册
注册用户
用户
注册用户登录
注册用户
用户
管理员登录
管理员
用户
删除
管理员
用户
指定权限
管理员
实体完整性:
用户信息:
用户必须唯一步能为空,密码不能为空,邮箱可以为空,用户等级、发帖和回帖由系统设置,是否删除由管理员设置。
帖子信息:
帖子的id号不能为空,帖子主题不能为空,帖子内容不能为空,帖子等级、帖子被访问的次数和发帖时间由系统设置,所属版面不能为空,发帖用户由日志提供。
版面信息:
版面id号唯一步能为空,版面名称唯一步能为空,版主不能为空
版主信息:
(版主名称不能为空,密码不能为空,邮箱可以为空)
参考完整性:
版面信息中:
版面参考版主信息表中的版主名,版主要么为空,要么和版主信息中的版主名相同。
自定义完整性:
帖子的主题长度不能超过400个字节,帖子的内容长度不能超过1000个字节。
3、阶段结果
(1)调查方式:
1、通过询问同学征询同学的意见
2、图书管查阅资料
3、上网了解一些论坛提供的功能
体会:
需求分析需要耐心的多了解用户的要求,然后要学会分析和提取有用的材料
收获:
听取了许多好的建议,对系统的整体构架有了清晰的认识。
(2)业务流程图
(3)数据图(DFD图)
(4)数据字典。
(见附录)
2.1.2概念设计
2.1.2.1目标与任务
目标:
将需求分析得到的用户需求抽象为信息结构,设计并生成E_R图。
任务:
设计各个分E-R图,并消除局部E-R图存在的冲突,合并成基本E-R图
特点:
(1)能真实的反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。
是对现实世界的一个真实模型。
(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键。
(3)易于更改,当应用环境和应用要求改变是,容易对概念模型修改和扩充。
(4)易于向关系、网状、层次等各种数据模型转换。
2.1.2.2概念模型设计
(1)设计分E-R图,即各子模块的E-R图;
用户(用户名,密码,邮箱,等级,发帖数,回帖数)
帖子(帖子id,主题,内容,帖子等级,帖子被访问次数)
发帖(发帖时间)
回帖(回帖id,帖子id,内容,用户名,回帖时间)
用户(用户名,密码,邮箱,等级,发帖数,回帖数)
版面(版面id号,版面名称,版主名称,版面主题数)
浏览(浏览时间)
管理员信息(管理员名,密码,邮箱)
用户(用户名,密码,邮箱,等级,发帖数,回帖数)
管理(管理行为)
帖子信息:
(帖子id,主题,内容,帖子等级,帖子被访问次数)
版面(版面id号,版面名称,版主名称,版面主题数)
从属(所属版面)
版主信息(版主名称,密码,邮箱)
帖子信息:
(帖子id,主题,内容,帖子等级,帖子被访问次数)
管理(管理行为)
版面(版面id号,版面名称,版主名称,版面主题数)
管理员信息(管理员名,密码,邮箱)
管理(管理行为)
(2)生成全局E-R图,通过消除冲突等方面
2.1.3逻辑设计
2.1.3.1目标与任务
目标:
完成E-R图到数据库模式的转换,优化各个关系模式
任务:
把概念结构设计阶段好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。
2.1.3.2数据组织
(1)将E-R模型转换为关系模型(描述转换的原则、转换的结果)。
如图1.7所示:
一、用户和帖子具有两个关系:
(1)用户回帖,因为用户和帖子的关系是m对n的关系,所以将联系类型也转换关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
用户(用户名,密码,邮箱,用户等级,发帖数,回帖数,精华帖数,是否删除)
帖子(帖子id,主题,内容,帖子等级,帖子被访问次数)
回帖(回帖id,用户名,帖子id,内容,回帖时间)
(2)用户发帖,用户和帖子的关系是1对多的关系。
所以可以联系可以转换为一个独立的模式,也可以与n端对应的模式合并。
这里把联系属性合并到n端实体。
用户(用户名,密码,邮箱,用户等级,发帖数,回帖数,精华帖数,是否删除)
帖子(帖子id,主题,内容,帖子等级,帖子被访问次数,发帖时间)
二、管理员和用户的关系为m对n,所以将联系类型也转换关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
用户(用户名,密码,邮箱,用户等级,发帖数,回帖数,精华帖数,是否删除)
管理员(管理员名,密码,邮箱)
管理(用户名,管理员名,管理)
三、版主和帖子为m对n的关系,所以将联系类型也转换关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
版主(版主名称,密码,邮箱)
帖子(帖子id,版主名称,主题,内容,帖子等级,帖子被访问次数)
管理帖子(版主名称,帖子id,管理行为)
四、管理员和版面是m对n的关系,所以可以转换为一个独立的模式
管理员(管理员名,密码,邮箱)
版面(版面id号,版面名称,版主名称,版面主题数)
管理(管理员名,版面id号,管理行为)
五、版面和用户是多对多的关系。
所以将联系类型也转换关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
版面(版面id号,版面名称,版主名称,版面主题数)
用户(用户名,密码,邮箱,用户等级,发帖数,回帖数,精华帖数,是否删除)
浏览(用户名,版面id号,浏览时间)
六、版面和帖子是1对多的关系,所以把联系属性合并到n端实体
版面(版面id号,版面名称,版主名称,版面主题数)
帖子(帖子id,版面id号,主题,内容,帖子等级,帖子被访问次数,所属版面)
七、由E_R图转化后得到的关系模式
用户(用户名,密码,邮箱,用户等级,发帖数,回帖数,精华帖数,是否删除)
帖子(帖子id,主题,内容,帖子等级,帖子被访问次数)
帖子(帖子id,主题,内容,帖子等级,帖子被访问次数,发帖时间)
帖子(帖子id,版面id号,主题,内容,帖子等级,帖子被访问次数,所属版面)
回帖(用户名,帖子id,内容,回帖时间)
管理员(管理员名称,密码,邮箱)
浏览(用户名,版面id号,浏览时间)
管理用户(用户名,管理员名,管理)
管理版面(管理员名称,版面id号,管理行为)
管理帖子(版主名称,帖子id,管理行为)
版主(版主名称,密码,邮箱)
版面(版面id号,版面名称,版主名称,版面主题数)
八、消除不一致后得:
用户(用户名,密码,邮箱,用户等级,发帖数,回帖数,精华帖数,是否删除)
帖子(帖子id,版面id号,主题,内容,帖子等级,帖子被访问次数,发帖时间,发帖用户)
回帖(回帖id,帖子id,用户名,内容,回帖时间,帖子等级)
管理员(管理员名称,密码,邮箱)
版主(版主名称,密码,邮箱,版主状态)
浏览(浏览id,用户名,版面id号,浏览时间)
管理用户(管理id,用户名,管理员名,管理行为)
管理版面(管理id,管理员名称,版面id号,管理行为)
管理帖子(管理id,版主名称,帖子id,管理行为)
版面(版面id号,版面名称,版主名称,版面主题数,版面状态)
(2)模型优化
以上关系都达到了3NF,不需要在分解
(3)完成数据库模式定义,包括各模式的逻辑结构定义、关系的完整性和安全性等内容。
member(u_name,u_password,u_email,u_step,u_post,u_return,jinghucount,u_stat)
u_name为主键,不能为空,而且是唯一的,u_password也不能为空,其它由系统管理员设置。
topic(t_id,bm_id,t_theme,t_content,t_stept_count,t_posttime,l_name)
t_id为主键,bm_id和,l_name为参考外键,都不能为空,t_theme,t_content都不能为空,t_step,t_count,t_posttime由系统设置
reply(r_id,t_id,l_name,r_conten,r_time,r_step)
r_id为主键,t_id和l_name为参考外键,都不能为空,r_conten也不能为空,r_time,r_step由管理员和系统设置。
minister(m_name,_m_password,m_email)
m_name为主键,m_name,m_password不能为空
banzhu(bzh_name,bzh_password,bzh_state)
bzh_name为主键,bzh_password不能为空,bzh_state由管理员设置
browsing(l_id,bm_id,u_name,l_time);
l_id为主键,bm_id和u_name为外键参考,都不能为空
mini_user(m_id,m_name,u_name,dowhat);
m_id为主键,m_name和u_name为外键参考,都不能为空,dowhat由管理员设置
mini_topic(mt_id,bzh_name,t_id,dowhat);
mt_id为主键,bzh_name和t_id为外键参考,都不能为空,dowhat由管理员设置
mini_banmian(mb_id,m_name,bm_id,dowhat);
mb_id为主键,m_name和bm_id为外键参考,都不能为空,dowhat由管理员设置
banmian(bm_id,bm_name,bzh_name,bm_themecount);
bm_id为主键,bm_name和bzh_name为外键参考,都不能为空
rizhi(l_name,l_time)
l_name为主键,不能为空,l_time由系统设置。
(4)设计用户子模式――视图设计,完成适合不同用户的子模式设计。
编号
模式
子模式
用户
作用
1
版面
版面视图
所有用户
查看包含的版块
2
帖子
主题列表视图1
所有用户
不同的用户选择不同的版块查看最新主题
主题列表视图2
主题列表视图n
不合格帖子视图
版主
删除不合格的帖子
3
用户
用户视图
各自用户
查看各自资料,并进行修改
在线用户视图
注册用户
查看所有在线用户
黑名单视图
管理员
删除被列出的用户
4
版主
版主视图
管理员
查看版主信息
5
管理员
管理员视图
管理员
查看管理员信息
2.1.3.3数据处理方面
系统的功能模块图如下:
2.1.4物理设计
2.1.4目标与任务
目标:
提供存储中数据的合适结构,而且要以合适的方式对性能提供保证。
任务:
一.确定数据库的物理结构
1.确定数据的存储结构
确定数据库存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。
这三个方面常常是相互矛盾的,例如消除一切冗余数据虽然能够节约存储空间,但往往会导致检索代价的增加,因此必须进行权衡,选择一个折中方案。
2.设计数据的存取路径
在关系数据库中,选择存取路径主要是指确定如何建立索引。
例如,应把哪些域作为次码建立次索引,建立单码索引还是组合索引,建立多少个为合适,是否建立聚集索引等。
3.确定数据的存放位置
为了提高系统性能,数据应该根据应用情况将易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。
4.确定系统配置
DBMS产品一般都提供了一些存储分配参数,供设计人员和DBA对数据库进行物理优化。
初始情况下,系统都为这些变量赋予了合理的缺省值。
但是这些值不一定适合每一种应用环境,在进行物理设计时,需要重新对这些变量赋值以改善系统的性能。
通常情况下,这些配置变量包括:
同时使用数据库的用户数,同时打开的数据库对象数,使用的缓冲区长度、个数,时间片大小、数据库的大小,装填因子,锁的数目等等,这些参数值影响存取时间和存储空间的分配,在物理设计时就要根据应用环境确定这些参数值,以使系统性能最优。
在物理设计时对系统配置变量的调整只是初步的,在系统运行时还要根据系统实际运行情况做进一步的调整,以期切实改进系统性能。
二.评价物理结构
数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案,数据库设计人员必须对这些方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构。
评价物理数据库的方法完全依赖于所选用的DBMS,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。
如果该结构不符合用户需求,则需要修改设计。
2.1.4.2数据存取方面
用户表以用户名建立唯一性索引,因为用户名是独一无二的。
帖子表以帖子id号建立唯一性索引
回帖表以帖子id号建聚簇索引,用于检索某个帖子用户的所有回复。
2.1.4.3功能模块
用户注册模块:
inputmessage
checkmembertable
if(u_nameinmembertable)
outuserisinthemember,changeforothername
else
successfulmessageputintomembertable
用户登录模块:
inputnameandpassword
checkmembertalbe
if(name=u_name&password!
=u_password)
fault;
else
successful
管理帖子:
checktopictable
if(topicisnotnormal)settopict_step=-1or1or0
updateTopic
管理用户帖子、管理版面帖子类似管理帖子,这里省略
发送帖子:
inputusernamecheckrizhi
if(usrnameinrizhi)
inputtopicmessageandsendouttotopictable
elsefault
回帖类似发帖(省略)
其它模块(省略)
2.1.5数据库实施
目标:
完成数据库系统的建立,并使用存储过程完成数据库功能
任务:
(1)建立数据库、数据表、视图、索引等存储过程等DDL定义,并完成完整性、安全性等要求定义;可用DDL语言或SQL脚本任意一种形式表现。
(见附录)
(2)数据入库
(3)完成处理过程、系统主要功能(查询、更新、简单统计等),均需要使用存储过程完成。
存储过程
编号
名称
作用
1
ChangeMyInformateion
可以用来更改用户的注册资料
2
Denglu
登录用户信息检测,并把用户名记录在日志里
3
Jinghuatie
用来检索精华帖
4
LookBM
列出所有的版面信息
5
LookBZH
查看版主信息
6
MinisterBanzhu
管理版主
7
MinsterReply
管理回复的帖子
8
Ministerbanmian
管理版面
9
MinisterTopic
管理帖子
10
MinsterUser
管理用户
11
MyInformation
查看用户自己的信息
12
Myteme
查看所有我发的主题
13
OnlineUser
查看在线用户
14
Postreply
回复帖子
15
PostTopic
发送帖子
16
Peply_Content
查看回复的信息
17
Theme
查看所有的主题
18
Theme_Content
查看主题的内容
19
Updatetopic
更新帖子
20
Updateusers
更新用户
21
Updatereply
更新回复的帖子
22
userInformation
所有用户的信息
23
Zhuce
注册用户
(存储过程见附录)
2.1.6数据库调试与试运行
(1)说明系统测试方法
本次测试主要使用黑盒测试的方法,即功能测试,输入测试数据,看输出的结果以意想的对不对
(2)测试内容,主要从功能测试和性能测试两个方面
存储过程的测试:
ChangeMyInformation'jaclieren','565689','jacshan','565689','jaclieren@'
DengLu'dede','3232'
executeReply_Content
executeTheme
declare@stringvarchar(1000)
executeTheme_Content@stringoutput
select'theTheme_Contentis:
',@string
executeMyInformation'iiley'
postReply15,2,'我觉得Servletandjsp核心编程还可以','jacshan'
postTopic'过年了,散分了,祝大家新年快乐',
'ha,ha!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
',
'jacshan',2
Zhuce'jaclieren','565689',''
这是部分存储过程的测试,全部都正常完成,其它不在此一一列出,视图的测试也都正常运行,这里省略
3收获与体会
本次实习主要是完成数据库的设计,对数据库的各阶段写出详细的说明文档。
对我来说是一个挑战,因为我很少写过文档,以前写的任何一个程序都是单刀直入,从不写文档,也不画任何程序流程图。
本次实习体会最深刻的就是需求分析,通过写需求分析文档,我深刻的体会到了需求分析在整个系统设计中的重要性即:
要全面的进行需求分析,了解用户的需求,这样可以减少以后设计的困难,完成需求分析对整个系统的功能和构架就非常的清晰,需求不完善将影响
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 论坛 管理 系统 论文