微信公众号:Java随笔
关注,了解更多Java相关技术分享。如果您有任何疑问或建议,请留言公众号!
1。系统需求分析
1。系统说明
作为一名计算机专业的学生,我深深感受到交流和学习编程技术对于提高自身技能的重要性。随着Web的发展,网上出现了很多论坛社区,但它们的主题范围并不局限于编程,针对性不强,提供的服务也比较简单。因此,一个集成、统一、功能多元化的编程论坛社区,用于编程技术交流,是所有程序员和老手所渴望的。
编程论坛社区IBBS的主要功能包括发布帖子、在已发布帖子下评论、引用评论进行回复。此外,还有两个功能模块:动态推送功能,向用户推送最新的技术热点和编程的最新动态,包括简短的内容说明和链接跳转;资源下载功能,为注册用户提供编程资源。下载服务。本系统前台面对的用户分为普通用户和注册用户。普通用户只有浏览网站的权限。浏览内容包括帖子、评论、注册用户的个人主页、动态推送页面。他们无法使用内容发布、资源下载等功能。 ;注册用户可以使用本系统前台提供的所有功能,包括发布帖子、评论、下载资源、维护自己的个人主页和个人信息等。当然本系统提供了注册和登录功能,并完善了认证功能通过随机验证码的能力。每个注册用户都有自己的个人主页,可以看到自己的帖子,二次编辑,设置和更改头像,修改密码等。
本系统后台由管理员管理和维护。管理员分为两个级别。普通管理员拥有管理前端信息的权限,包括版块信息管理、用户信息管理、岗位管理等,而超级管理员在此基础上拥有管理员更多的权限,包括系统设置、管理员设置等,管理员可以后台动态管理大部分前端信息,包括父子栏目增删改查、不符合监管要求的帖子删除、动态信息增删改查编程资源等,非常方便,大大提高了后台管理的效率。
编程论坛社区IBBS为程序员提供专业的交流平台。在这里,您可以分享编程经验,交流学习编程技术,获取最新技术动态,下载编程学习资源。为程序员提供了一个便捷、内容丰富、高效的学习平台。
2。需求分析和应用功能
编程论坛社区IBBS数据库需要存储以下信息:
-
父版块信息主要包括父版块id、父版块名称、父版块简介;
-
子版块信息包括版块id、版块名称、版块介绍、版块版主(即注册用户ID)、版块数量子版块下的帖子,以及子版块所属的父版块,即父版块的id;
-
帖子信息涉及帖子id、帖子标题、帖子内容、帖子发布时间、帖子所属subreddit id、编号帖子的浏览量和发布帖子的用户的用户 ID;
-
关于评论,首先,评论有两种,一种是对用户发布的帖子进行评论,另一种是引用已有评论进行二次评论(即可以回复评论) )。上述要求在数据库表中体现为一个字段。如果该字段为0,则表示该记录是对某个帖子的评论。如果不为零,则该字段是回复评论的id。其他信息还包括评论的id、评论所属帖子的id、评论的内容、发表评论的时间、发表评论的用户id;
-
注册用户信息包括用户id、用户名、账户密码、用户头像存储路径、账户注册时间和账户上次登录时间。其中,注册用户有权修改账户密码、更改头像;
-
最新新闻信息包括动态id、动态标题、动态介绍、动态相关链接、动态添加时间;
-
资源的信息包括资源的id、资源的标题(如书籍资源的标题)、资源的简介、资源的存储路径、存储路径资源对应的图片,以及资源添加的时间;
?超级管理员在此基础上拥有更多的权限,包括系统设置、管理员设置等。上述级别区分是使用字段完成的,其他信息还包括管理员的账户ID、账户名、账户密码、账户创建等时间。
3。系统中常见问题查询及更新
经常执行的可能对索引创建有影响的查询:
-
通过父版块的 id 搜索属于父版块的子版块和帖子
-
通过 subreddit 的 id 查找属于该 subreddit 的帖子
-
通过帖子id查找帖子详细内容以及帖子下的评论
-
通过用户 ID 查找用户发布的帖子
根据频繁查询,需要创建相关视图:
-
家长论坛列表
-
Reddit 子列表
关于更新:
? ?帖子发布后,对应的用户拥有二次编辑和删除权限。考虑到某个帖子的内容可能不符合论坛社区的标准,管理员有权删除任何用户发布的帖子。 ,维护论坛社区的健康
输入用户信息后,注册用户将获得更改头像和修改密码的权限
4。应用程序功能
前台主要功能如下:
1。向网站访问者开放:
a。查看父版块及对应子版块的信息介绍
-
b。浏览注册用户发布的帖子以及帖子下的评论
-
c。浏览注册用户的个人中心
d。您可以使用搜索功能通过关键词搜索相应的帖子
-
e。您可以在技术更新模块浏览信息
f。资源模块中可以浏览资源信息,但无法下载
2。向注册用户开放:
a。包括网站访问者可用的功能
-
b。可以在相应的reddit子版块下发帖
-
c。可以在相应帖子下发表评论并回复评论
d。可以下载资源模块里的资源
-
e。您可以管理自己的个人中心,包括更改密码、更改头像等
f。您可以编辑或删除您的帖子
后台主要功能如下(管理员对网站数据的管理基本包括查询、修改、添加、删除操作):
1。系统信息概览:
a。当前登录的管理员账户基本信息
-
b。系统使用的服务器配置信息
-
c。 MySQL版本信息和PHP配置信息
d。网站当前数据汇总,包括父版块数、子版块数、帖子总数、注册用户数等
-
2.家长版块管理:
a。分页显示当前父分区列表
-
b。添加新的父部分
-
c。编辑父分区的信息
d。删除父部分
3。后期管理:
- a。使用管理员帐号跳转到首页,浏览各版块下的帖子,并有删除任意帖子的权限
-
4。用户管理:
a。分页显示当前注册用户
-
b。通过关键词搜索特定用户
-
c。访问用户个人中心
d。删除用户帐户
-
5. 动态管理:
a。分页显示当前动态列表
-
b。添加新更新
-
c。编辑动态信息
d。删除活动
-
6. 资源管理:
a。分页显示当前资源列表
-
b。添加新资源,包括文字介绍、图片介绍、资源文件等
-
c。编辑资源信息
d。删除资源
2。数据库概念设计
1。确定实体和属性
分析编程论坛系统的系统需求,抽象出系统中设计的人和物,得到系统的实体如下:
1。父节信息实体集。属性包括:父版块名称、父版块介绍
2。子节信息实体集。属性包括:所属父版块id、子版块名称、子版块简介、子版块版主用户ID、子版块下发帖数
3。发布信息实体集。属性包括:帖子所属板块ID、帖子标题、帖子内容、帖子发布时间、帖子发布用户ID、帖子浏览量发帖
4。发表评论实体集。属性包括:评论所属帖子的id、用于区分评论是普通评论还是引用评论的id、评论内容、评论发布时间、发布的用户id评论
5。动态信息实体集。属性包括:动态标题、动态介绍、动态链接、动态添加时间
6。资源信息实体集。属性包括:资源标题、资源介绍、资源文件存储路径、资源介绍图片存储路径、资源添加时间
7。用户信息实体集。属性包括:用户id、用户名、加密用户密码、用户头像存储路径、用户注册时间、用户上次登录时间
8。管理员信息实体集。属性包括:账户名、加密账户密码、创建时间、管理员级别
2。 E-R图
系统E-R图如图2-1所示:
3。数据库逻辑结构设计
1。关系模式设计
根据概念结构设计得到的E-R图和转换规则,得到如下关系模式(主键加粗,外键解释):
父章节信息表(父章节id、章节名称、章节简介)
子版块信息表(子版块id、所属父版块id、版块名称、版块介绍、版主用户id)
帖子信息表(帖子id、帖子所属板块id、帖子标题、帖子内容、帖子发布时间、帖子发布者id、帖子浏览量)
评论信息表(评论id,评论所属帖子的id,区分普通评论/引用评论的id,评论内容,评论发表时间,用户发表评论的id)
动态信息表(动态id、动态标题、动态介绍、动态链接、动态添加时间)
资源信息表(资源id、资源标题、资源介绍、资源文件存储路径、资源介绍图片存储路径、资源上传时间)
用户信息表(用户id、用户名、加密账户密码、用户头像存储路径、用户注册时间、用户上次登录时间)
管理员信息表(管理员id、账户名、加密账户密码、账户创建时间、区分普通管理员/超级管理员的ID)
2。基本桌子设计
4。数据库物理设计与实现
1。创建基本表
基本表的创建详细信息请参见SQL文件ibbs.sql,此处不再赘述。
2。其他数据库对象的设计
在实际生产环境中,将密码以明文形式存储在数据库中是非常危险的。一旦数据库分离等情况发生,所有用户信息将毫无保留地呈现给攻击者。因此,我的做法是对用户设置的密码进行加密,然后存入数据库。同时,在用户登录、修改密码等涉及密码的场景中,对密码进行两次加密后再进行比对,保证用户信息安全。
5。应用设计
1。开发及运行环境介绍
使用的技术栈是PHP + MySQL + Bootstrap + jQuery。使用的开发工具包括PhpStorm、WebStorm、XAMPP等,应用程序已部署到服务器并可以正常运行。
2。主要功能设计
用户:用户主要浏览父版块、子版块、用户发布的帖子和评论,注册登录、发帖、发表评论、浏览技术动态、浏览资源页、下载资源、搜索帖子、查看自己和其他用户的个人中心、修改账户密码、更改头像等功能。
管理员主要有添加、修改、删除父版块、子版块、技术动态、资源等功能。还可以根据用户名搜索用户、管理用户、跳转到前台以及删除一些不符合标准的帖子等处理。
下图为用户主要功能流程:
3。主界面
首页界面如图5-1所示。
登录界面如图5-2所示。
注册界面如图5-3所示。
个人中心界面如图5-4所示。
修改头像界面如图5-5所示。
密码修改界面如图5-6所示。
父版块界面如图5-7所示。
子节界面如图5-8所示。 1 {IMG_13:Ahr0Chm6ly9pbwCTYMXVzy5jc2ruaw1nlmnulziwmjewnde5MTM1NTE2MJAUCG5NP3NZLXB2NLC3MMIZYWDGVGVYBWFYAYX0 exblx1ptrnvam3BVWLC1BMFHVNBKR2SSC2HHZG93XZEWLHRFYUHSMG NITTTLPYKC5BKXTNPAM1WMEWCGZYMDFOYYYJNPEMVFMVFM TYSY29SB3JFRKZGRKZGLHRFNZA =/}
帖子详情界面如图 5-9 所示。
一般评论和引用评论如图5-10所示。
发帖界面如图5-11所示。
正常评论界面如图5-12所示。
报价评论界面如图5-13所示。
搜索界面如图5-14所示。
技术动态界面如图5-15所示。
资源界面如图5-16所示。
管理员登录界面如图5-17所示。
后台管理主界面如图5-18所示。
管理人员列表界面如图5-19所示。
管理员添加界面如图5-20所示。
父版块列表界面如图5-21所示。
子版块列表界面如图5-22所示。
注册用户列表界面如图5-23所示。
用户搜索界面如图5-24所示。
动态列表界面如图5-25所示。
动态添加界面如图5-26所示。
资源列表界面如图5-27所示。
资源添加界面如图5-28所示。
六、源码下载
完整项目的源码以及SQL文件已经上传,详见下载地址
公众号
- 关注公众号,即时接收关于Java的技术分享!