基于SSH和MySQL实现的BBS论坛系统
摘 要
此在线论坛系统是一个基于浏览器和服务器架构模式的论坛系统,主要是实现论坛用户在论坛里面所提出的论题和回答的功能。
此论坛系统采用MySQL5.5数据库作为存储,编程采用Java语言,采用ssh框架。在myeclipse环境下来运行实现后台代码,并且结合网页前端技术利用jsp页面来实现后台数据与前端数据的互动,让后台数据能够在前台页面以具体化的数字展现。
论坛系统是伴随着互联网大潮而产生的产物,随着信息时代的飞速发展,各大应用软件以及各大系统层出不穷。由此可预知的是:论坛系统将有着广阔的前景及光明的未来。论坛系统能激发人们的讨论兴趣,让广大的注册用户参与到某个论题的讨论中来。随着时间推移,注册用户也必将水涨船高,此系统的重要性和可行性也能进一步得到充分证实。
得益于互联网的飞速发展。寄生于互联网的论坛系统正赶上了当红的时代。论坛系统有着庞大的用户群体以及良好的网络技术服务支撑,伴随着互联网的发展,论坛系统也必将有一个美好的未来。
一、开发背景
在日益信息化的二十一世纪,热衷于“网上冲浪”的网民们,当被各种层出不穷的应用程序充斥着我们的手机的时候,不仅仅只是局限于社交媒体、视频游戏等方面的需求。有时候也需要一个软件系统能够给网民们提供一个各抒己见的平台。当发生了某种事情或者是出现了某个问题引发了人们的广泛讨论的时候,就需要有一个系统来满足人们的这种需求。
设计开发实现一个在线论坛系统,能够较好的满足人们的这种需求。当社会上出现了事情的时候人们能够第一时间在此论坛上进行广泛的讨论。大家都能够针对这件事件各抒己见发表不同的看法。“一石激起千层浪”此系统充分利用了人们喜欢发表不同看法的特点。在法律许可范围内,所有用户的回复都将被展示出来给大众看。在观看回复的同时也可以发表你自己的观点。踊跃参与到论坛讨论中来。当你有什么问题或想法的时候,也可以发个帖子出来看看大家的观点。这样自己也不至于是指没头的苍蝇到处乱撞。可以得到较高的认同感和存在感。提升自己的获得感。
此论坛系统的开发是切合实际的。存在着大量的潜在用户,是个大众所喜闻乐见的系统。开发此系统的意义大、可行性高。
二、需求分析
2.1 用户基本需求描述
- 游客
- 注册功能 :游客可以通过注册成为注册用户
- 查询 :游客可以根据关键字查询论坛里相关的论题
-
回帖 :游客可以回答论题,但是不能进行投票和获得积分
-
注册用户 :注册用户可以在登录系统之后,除了可以像游客一样具有基本的查询和回帖功能以外,还可以对自己的论题进行相应的管理。具体包括:
- 提问功能 :用户可以提出自己的论题,设置截题时间以及回帖奖励的积分值等信息;也可以选择是否主动截题(主动截题方式如上所述)
- 回答功能 :用户可以回答别人的论题,从而获得积分,也可以为别人的回答或论题投票(赞同或反对)
- 积分获得功能 :用户可以通过回复别人的论题或为别人的论题(或回答)投票而获得相应的积分奖励,具体的奖励额由发帖人设置
- 积分分配功能 :用户可以设置回答自己论题的用户可以获得的积分值、投票自己论题或回答的用户可以获得的积分值、设为最佳答案的回复者可以获得的积分值等信息
- 查询功能 :用户可以查询自己的论题、回答过的论题以及自己的注册信息(可修改),积分信息等数据
版主 :版主除了具有注册用户的所有功能以外,还具有论题维护功能:可以查询所有的论题,并删除部分论题(包括内容审核不合格或截题超过三个月的论题)
2.2 数据流图分析
此论坛系统的顶层图如图2.2.1所示:
此论坛系统的0层图如图2.2.2所示:
2.3 数据字典
由以上的数据流图分析后可得,此论坛系统的数据流入下表2.3.1所示。
数据流名称 | 数据流别名 | 说明 | 数据流来源 | 数据流去向 | 数据流组成 |
---|---|---|---|---|---|
用户登录信息 | 登录信息 | 用户的登录信息 | 用户 | 用户登录信息处理 | 用户表=用户名+密码 |
用户操作信息 | 操作信息 | 用户的操作信息 | 用户 | 用户操作信息的处理 | 帖子表=帖子ID+帖子发布者+标题 回复表=回复帖子ID+回贴人ID |
相关消息 | 相关消息 | 返回相关消息 | 帖子表、回复表 | 客户 | 操作信息 |
用户操作信息 | 无 | 管理员对用户的操作信息 | 管理员 | 用户表 | 用户表=用户状态+ID+权限 |
帖子操作信息 | 无 | 对帖子的操作信息 | 管理员 | 帖子表 | 帖子表=帖子ID+帖子发布者+标题 |
论坛操作信息 | 无 | 关于论坛模块的操作 | 管理员 | 模块类别表 | 模块类别表=id+模块名 |
数据项条目如下表2.3.2所示:
数据项名称 | 数据项别名 | 说明 | 类型 | 长度 |
---|---|---|---|---|
用户ID | Id | 论坛系统客户的唯一标识 | int | |
用户名 | uesrname | 论坛系统的登录名 | varchar | 20 |
密码 | password | 论坛系统的登录密码 | varchar | 20 |
性别 | Sex | 用户性别 | varchar | 2 |
积分 | integer | 系统的用户积分 | Int | 11 |
数据存储条目如下表2.3.3所示:
数据储存条目 | 别名 | 简述 | 组成 | 组成方式 | 查询方式 |
---|---|---|---|---|---|
用户表 | 无 | 存放所有用户信息 | 用户表=用户ID+性别+用户名+密码 | 索引文件,以用户ID为关键字 | 要求能立即查询 |
帖子表 | 无 | 存放所有帖子信息 | 帖子表=帖子ID+内容+标题+发布时间+评论数 | 索引文件,以帖子ID为关键字 | 要求能立即查询 |
回复表 | 无 | 存放所有帖子评论信息 | 回复表=回复ID+回复内容+回复时间 | 索引文件,以回复ID为关键字 | 要求能立即查询 |
板块类别表 | 无 | 存放所有论坛的模块 | 板块类别表=板块类别ID+板块名称 | 索引文件,以类别ID为关键字 | 要求能立即查询 |
加工条目如下表2.3.4所示:
加工名 | 激发条件 | 优先级 | 输入 | 输出 |
---|---|---|---|---|
用户登录信息 | 登录时 | 普通 | 用户名密码 | 登入是否成功 |
用户操作信息 | 用户需要进行任何操作时 | 普通 | 操作指令 | 是否操作成功 |
相关消息 | 用户完成操作指令时 | 普通 | 无 | 操作返回消息 |
用户操作信息 | 管理员需要对用户进行操作 | 普通 | 操作信息 | 返回是否操作成功 |
帖子操作信息 | 对帖子进行任何操作 | 普通 | 对帖子的操作信息 | 返回操作信息 |
论坛操作信息 | 对论坛版块进行操作 | 普通 | 对论坛版块进行新增或修改 | 返回操作是否成功 |
三、详细设计
3.1 概念模型设计
概念模型设计既为系统的E-R图设计。经过设计分析,此论坛系统的E-R图由一个总体的E-R图表示即可。此系统的总体E-R图如下图3.1所示:
3.2 关系模型设计
由上E-R图可将此论坛系统的概念模型转化为具体的关系模型。根据分析,共分为3个关系,具体如下所示:
-
用户 ( 用户id 、用户名、昵称、密码、总积分、论坛等级、评论总数、发帖总数)外键为论坛等级
-
论题 ( 论题id 、用户id、论题内容、论题标题、赠予积分) 外键为用户id
-
回答 ( 回答id 、用户id、论题id、回答内容) 外键为用户id,论题id
-
帖子板块 ( 板块id 、板块名字、板块论题总数、板块论题回复总数、论题id)论题id为外键
-
论题等级 ( 等级id 、论坛等级)
3.3 物理模型设计
用户表t-user
字段名 | 字段类型 | 说明 | 备注 |
---|---|---|---|
id | Int(11) | 用户id | 主键 |
username | Varchar(20) | 用户名 | 无 |
password | Varchar(20) | 用户密码 | 无 |
Integral | Int(11) | 用户的总积分 | 无 |
grade_integal | Int(11) | 用户论坛等级 | 默认为1 |
nickname | Varchar(32) | 用户昵称 | 无 |
topic_count | Int(11) | 发帖总数 | 无 |
comment_count | Int(11) | 评论总数 | 无 |
论题表t-topic
字段名 | 字段类型 | 说明 | 备注 |
---|---|---|---|
id | Int(11) | 论题id | 主键 |
Title | Varchar(50) | 论题标题 | 无 |
Content | longtext | 论题内容 | 无 |
Topics_user_id | Int(11) | 用户id | 外键 |
Integral | Int(11) | 发帖用户设置赠予积分 | 无 |
回答表t_comment
字段名 | 字段类型 | 说明 | 备注 |
---|---|---|---|
Comment_id | Int(11) | 回答id | 主键 |
comment_user_id | Int(11) | 用户id | 外键 |
Comment_topics_id | Int(11) | 论题id | 外键 |
content | longtext | 回答内容 | 无 |
帖子板块表t_category
字段名 | 字段类型 | 说明 | 备注 |
---|---|---|---|
Id | Int(11) | 帖子板块id | 主键 |
name | Varchar(30) | 帖子板块名字 | 无 |
count_topics | Int(11) | 记录板块论题数 | 无 |
count_comments | Int(11) | 记录板块回复数 | 无 |
Count_topics_id | Int(11) | 论题id | 外键 |
用户论题等级表t_grade
字段名 | 字段类型 | 说明 | 备注 |
---|---|---|---|
Id | Int(11) | 论坛等级 | 主键,从1自增长 |
Honor | Varchar(30) | 论坛等级 | 无 |
四、系统功能模块说明
4.1 用户管理模块
此模块的主要功能是提供接口给首次进入该论坛的“游客”提供注册服务以及论坛合法用户的登录功能。在论坛下提出论题、查看论题、回答别人的论题都需要先进行登录。如果没有合法身份,则需要先进行注册。论坛的用户可以根据积分分为不同的等级。
4.2 用户回答模块
此模块的主要功能是实现论坛的合法用户回答论题的功能。用户可以在论坛中相对应的论题下发表回答来讨论该论题。如果该回答被论题的提问者赞成,则可获得大量的积分,提升论坛等级。
4.3 用户发帖模块
此模块的主要功能是实现论坛系统用户的发帖功能。用户编辑相对应的标题和内容并且选择模块和子模块进行发帖。发帖的时候可以设置赠与积分。发帖者和论坛其它的合法用户都可对该论题进行回答。用户需手动对该论题进行结贴,结贴的时候可以对回复的用户分配相对应的积分。
4.4 个人中心模块
此模块的主要功能是实现注册用户在此论坛系统中的个人信息有关功能。用户可以在个人中心中看到自己的注册时信息、论坛积分、论坛等级。还可以看到自己的发的帖子和评论。同时,也可以在个人中心模块修改资料和修改密码。
4.5 版主管理模块
此模块的主要功能是实现该论坛系统版主身份的管理功能。当版主登录到该系统后,既可开始对用户的管理(包括对用户禁止发帖和回答以及解除禁止发帖回复状态)和对帖子的管理(查看帖子状态、对帖子推荐为精品贴、删除一些内容不够健康的帖子)。
五、系统实现
5.1 项目结构图
5.2 论坛系统主界面
无论身份是游客还是系统的注册用户,刚打开此论坛系统网站进入该系统的时候,系统总是显示此主界面。论坛系统的主界面如下图5.2所示:
5.3 游客注册界面
当游客进入该论坛系统后,可选择进行用户注册,游客注册界面如下图5.3所示:
5.4 注册用户登录界面
当游客注册成功取得合法身份后,即可在主界面选择注册用户登录。注册用户登录界面如下图5.4所示:
5.5 用户发帖界面
当注册用户成功登录到系统后,即可在此系统内选择发帖,选择帖子所对应的板块。发帖的同时也可以添加回复用户要赠予的积分。注册用户发帖的界面如下图5.5所示:
5.6 用户发表回答界面
用户成功登录此论坛系统后,在查看的论题下面即可发表想要发表的回答。用户发表回答的界面如下图5.6所示:
5.7 管理员管理界面
该模块分为用户管理、帖子管理等功能。当该系统的管理员登录到该系统后,可查看所有分类下的论题以及能查询所有论题。此外,管理员还可以根据需要对一些帖子就行删除、可对帖子进行推荐精品。管理员界面如下图5.6所示:
5.8 个人中心界面
用户成功登录系统后,既可点击论坛系统主界面左上方的“个人中心”查看自己的个人信息。包括注册时的信息(密码除外)还可以查看自己的积分情况以及帖子情况。个人中心界面如下图5.7所示:
总 结
经过此次论坛系统设计与实现的课程设计。使我们大大提高了对于《数据库原理与应用》这门课的认识,增强了自己对于数据库课程的学习深度。我们不仅仅只是学到了书本上那些理论知识。通过这次课程设计更让我们学会把书本上那些理论性的知识和现实充分结合起来一起解决现实世界中所面临的问题。真正实现了“学有所用”。
在前期的设计阶段,我们犯了把业务模型写入到E-R图中的原则性错误。还好我们及时请教老师,在老师的指导下我们迷途知返,及时的把这个错误给纠正了过来。使得我们驶入了正确的方向。在后期的实现阶段,要求实现设置论题最后的截题时间以及论坛用户可以为自己提出以外的论题进行投票这两个功能。由于道行不深,学艺不精。经过多方面的尝试最后还是没有做出来。后面还有一大堆的功能也在赶着我们继续往后面走。所以我们只能先搁置了起来。最后出来的这个成品。不管是前端页面的还是后台Java数据都和我们想象中的有着一定的差距。也有点不尽如人意的感觉。在我们努力下系统也喜欢一言不合就出现各种毛病,辛辛苦苦敲出来的代码到最后确是运行不了或者是报错。我们三个相互鼓励着前进。内心深处那坚定的信念让我们克服了各种现实中的和心理上的困难,最终把这个项目给做了出来。
通过此次论坛系统的课程设计,大大提高了我们的动手能力,让我们学会了把知识和理论相结合。在开发过程中,小组成员之间互帮互助,互相加油鼓劲。极大的提高了我们的团队合作精神。有了这次论坛系统课程设计的经验使我们对于以后的学习和工作中所碰到的相关问题都有了一定的经验,丰富了自己的知识面。同时,此系统的成功开发也一定程度上提高了我们的成就感。虽然还有些功能没有完善,有些地方也值得进一步去优化,在学习上深知我们的不足。在以后的学习生活中我们一定更加努力。将把这段课程设计时间的良好品质弘扬下去。向着更好的自己而努力前行!
参考文献
[1] 李春葆.数据库原理与技术[M].清华大学出版社.2015
[2] 王珊,萨师煊.数据库系统概论(第五版)[M].高等教育出版社.2014
[3] 明日科技.My SQL从入门到精通[M].清华大学出版社.2017
[4] 陈慧贞.网页程序设计(第四版)[M].清华大学出版社.2015
[5] 传智播客高教产品研发部.Java web程序开发入门[M].清华大学出版社.2015
[6] 张芳芳,候俊杰.css web开发学习实录[M].清华大学出版社.2011
[7] 张海藩,牟永敏.软件工程导论(第六版)[M].清华大学出版社.2013
[8] 黑马程序员.java基础入门(第二版)[M].清华大学出版社.2018
[9] 传智播客高教产品研发部.ssh框架整合实战教程[M].清华大学出版社.2015
参考文献
- 公司管理中BBS信息系统的设计与实现(电子科技大学·赵正刚)
- 基于SSH框架的统一开发平台研究及应用(南京邮电大学·刘曼蓉)
- 基于JSP的论坛管理系统的设计与实现(吉林大学·刘福宸)
- 基于J2EE的招聘求职系统设计与实现(电子科技大学·马韵晓)
- 基于SSH的大学生联谊交友管理系统设计与实现(华中科技大学·王海波)
- 基于JSP的论坛管理系统的设计与实现(吉林大学·刘福宸)
- 一个通用论坛系统的设计与实现(山东大学·张正)
- 基于Web技术的校园论坛设计与实现(内蒙古科技大学·李鹏飞)
- 基于JavaEE的ITPUB软件开发技术论坛的设计与实现(吉林大学·孙睿)
- 基于Asp.Net和Ajax技术的BBS系统的设计与研究(南昌大学·陶勇强)
- 基于MVC框架的BBS论坛管理系统的设计与实现(云南大学·徐永彪)
- 基于JSP的论坛管理系统的设计与实现(吉林大学·刘福宸)
- 一个通用论坛系统的设计与实现(山东大学·张正)
- 基于JavaEE的ITPUB软件开发技术论坛的设计与实现(吉林大学·孙睿)
- 大学生学习交流论坛的设计与实现(电子科技大学·裴博杰)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码工坊 ,原文地址:https://bishedaima.com/yuanma/35279.html