zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

基于Java+MySQL实现新闻发布系统【100010499】

mysqlJAVA系统 实现 基于 发布 新闻
2023-09-11 14:17:49 时间

项目概述

新闻发布系统是新闻媒体或者自媒体推送实时新闻,让其他用户或者游客阅读的网站。主要实现功能:前台开放式的展示新闻列表,允许所有用户、游客浏览,提供游客的登录注册功能,个人中心用户可以对自己文章、评论的管理,增加文章等功能;后台实现管理员管理所有文章、评论的删除、修改、编辑功能,实现对用户的强制下线,删除用户等功能。

需求分析

  • 用户、游客可以任意的访问新闻主页各类型的文章信息,但是如果要进行评论游客需要进行登录/注册才能操作。
  • 登录注册基础功能。
  • 用户登录后,可以发表文章,在个人中心可以对自己文章,评论的管理。
  • 文章主页点击显示文章内容。
  • 管理员在后台管理所有的文章、评论的删除、修改等。
  • 管理员在后台管理普通用户的账号:对普通用户的强制下线,删除用户账号等。
  • 登录:需要检测登录状态,防止同一账号多次登录。
  • 忘记密码,根据邮箱找回密码。

实现效果

1.用户注册

2.用户登录

3.管理员登录

4.新闻主页

5.后台主页

6.新增新闻

7.编辑新闻

8.详情内容页

9.评论区

数据库设计

1.user 表(用户表):user_id(用户 Id),user_type(用户类型),user_password(用户密码),user_email(用户邮箱),user_age(用户年  龄),create_time(用户创建时间)。

注:该用户表的 user_type 类型的值 0:表示普通用户,1:认证用户,2:管理员。user_eamil 是用来找回密码的。

字段数据类型是否为空备注
user_idbigintnot nullkey
user_namevarchar(225)not null用户名
user_passwordvarchar(225)not null密码(使用 md5 加密)
user_emailvarchar(40)not null邮箱(用来找回密码)
user_ageint用户年龄
create_timetimestampnot null创建时间

2.news 表(新闻表):new_id(新闻 id),category_id(类别 id),user_id(作者),title(标题),content(内容),create_time(创建时间),key_words(新闻关键字)

注:在数据库设计的时候最好不要使用外键,原因很简单,因为到时候删除表的时候会导致一系列麻烦事情,不利于开发。

所以一般不设置外键,到时候只是建立连接查询即可。

字段数据类型是否为空备注
new_idbigintnot nullkey
category_idbigintnot null类型 Id
user_idbigintnot null作者 Id
titlevarchar(225)not null文章标题
contenttextnot null文章内容
create_timetimestampnot null创建时间
key_wordsvarchar(125)not null关键字

3.comment 表(评论表):comment_id 表 id,new_id 所评论新闻的 id,user_id 评论者的 id,content 评论内容,create_time 创建时间。

字段类型是否为空备注
comment_idbigintnot null表 id key
new_idbigintnot null新闻 id
user_idbigintnot null评论者 id
contenttextnot null内容
create_timetimestampnot null创建时间

4.category 表(类别表):category_id 表 id,category_name 类别名

字段类型是否为空备注
category_idbigintnot nullkey
category_namebigintnot null类别名

功能模块设计

注册功能设计

在注册页面,首先在前端对用户输入的数据的合法性的检验,较少后端的访问次数;在后端,我们采用 Redis 做有个二级缓存,用来存储已经注册的用户信息,用户注册的时候首先检测缓存中是否存在,如果不存在再在数据库中检测(如果数据库中的全部注册信息都在缓存中,那么可以不用这一步,但是如果 Redis 挂掉了这种情况)。一切合法再进行注册。

使用 Redis 缓存的好处:如果在传统的情况下,注册的时候直接检测数据库里的数据,在高并发的情况下,两个用户同时注册数据库中不存在的字段,数据库中会出现两条数据用户名相同的数据,但是使用二级缓存就可以避免这个问题。

登录功能设计

在 login 页面,用户输入数据,首先 js 验证数据是否出错,不出错就发送到后台。在后台第一步在 application 查找登录信息,判断该用户是否已经登录,如果已经登录,提示不能登录。然后在 Redis 中验证登录字段,如果 Redis 中没有找到该字段,那么再数据库中查询验证登录字段,如果数据库都没有那么提示用户或者密码错误。

后台页面设计

后台列表首先显示相应的数据,和相应的操作。

新闻主页设计

♻️ 资源

在这里插入图片描述

大小: 12.5MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87400262