MySQL实现—新闻发布系统数据库设计

这篇具有很好参考价值的文章主要介绍了MySQL实现—新闻发布系统数据库设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系统概述

本章介绍的是一个小型新闻发布系统,管理员可以通过该系统发布新闻信息、管理新闻信息。 一个典型的新闻发布系统网站至少应该包含新闻信息管理、新闻信息显示和新闻信息查询 3 种功 能。

新闻发布系统所要实现的功能具体包括新闻信息添加、新闻信息修改、新闻信息删除、显示 全部新闻信息、按类别显示新闻信息、按关键字查询新闻信息、按关键字进行站内查询。

本站为一个简单的新闻信息发布系统,该系统具有以下特点。 

  • 实用:系统实现了一个完整的信息查询过程。
  • 简单易用:为使用户尽快掌握和使用整个系统,系统结构简单但功能齐全,简洁的页面设 计使操作起来非常简便。
  • 代码规范:作为一个实例,文中的代码规范简洁、清晰易懂。 

本系统主要用于发布新闻信息、管理用户、管理权限、管理评论等功能。这些信息的录入、 查询、修改和删除等操作都是该系统重点解决的问题。

本系统的主要功能包括以下几点:

(1)具有用户注册及个人信息管理功能。

(2)管理员可以发布新闻、删除新闻。

(3)用户注册后可以对新闻进行评论、发表留言。

(4)管理员可以管理留言和对用户进行管理。 

系统功能 

新闻发布系统分为 5 个管理部分,即用户管理、管理员管理、权限管理、新闻管理和评论管 理。本系统的功能模块如下图 所示 

在用户评论表(comment)中,以新闻编号(news_id)进行分类,并统计每条新闻的评论数量,mysql,数据库 

中模块的详细介绍如下: 

(1)用户管理模块:实现新增用户、查看和修改用户信息功能。

(2)管理员管理模块:实现新增管理员,查看、修改和删除管理员信息功能。

(3)权限管理模块:实现对管理员、对管理的模块和管理的评论赋权功能。

(4)新闻管理模块:实现有相关权限的管理员对新闻的增加、查看、修改和删除功能。

(5)评论管理模块:实现有相关权限的管理员对评论的审核和删除功能。

通过上面的介绍,读者对这个新闻发布系统的主要功能有一定的了解,下面将向读者介绍 本系统所需要的数据库和表。 

数据库设计和实现 

数据库设计是开发管理系统最重要的一个步骤。如果数据库设计得不够合理,将会为后续的 开发工作带来很大的麻烦。本节为读者介绍新闻发布系统的数据库开发过程。

数据库设计时要确定设计哪些表、表中包含哪些字段、字段的数据类型和长度。通过本节的 学习,读者可以对 MySQL 数据库的知识有一个全面的了解。 

  1. 设计表 

本系统所有的表都放在 webnews 数据库下。创建和选择 webnews 数据库的 SQL 代码如下 

CREATE DATABASE webnews;
USE webnews; 

 在这个数据库下总共存放 9 张表,分别是 user、admin、roles、news、category、comment、 admin_Roles、news_Comment 和 users_Comment。

 (1)user 表

user 表用于存储用户 ID、用户名、密码和用户 Email 地址,所以 user 表设计了 5 个字段。user 表每个字段的信息如下表 所示。

在用户评论表(comment)中,以新闻编号(news_id)进行分类,并统计每条新闻的评论数量,mysql,数据库 

根据表的内容创建 user 表,SQL 语句如下: 

CREATE TABLE user(
userID INT PRIMARY KEY UNIQUE NOT NULL, 
userName VARCHAR(20) NOT NULL,
userPassword VARCHAR(20) NOT NULL,
sex varchar(10) NOT NULL,
userEmail VARCHAR(20) NOT NULL
); 

 创建完成后,可以使用 DESC 语句查看 user 表的基本结构,也可以通过 SHOW CREATE TABLE 语句查看 user 表的详细信息。

(2)admin 表

管理员信息(admin)表主要用来存放用户账号信息,如下所示

在用户评论表(comment)中,以新闻编号(news_id)进行分类,并统计每条新闻的评论数量,mysql,数据库 

根据表的内容创建 admin 表。创建 admin 表的 SQL 语句如下: 

CREATE TABLE admin(
adminID INT PRIMARY KEY UNIQUE NOT NULL,
adminName VARCHAR(20) NOT NULL,
adminPassword VARCHAR(20) NOT NULL
); 

 创建完成后,可以使用 DESC 语句查看 admin 表的基本结构,也可以通过 SHOW CREATE TABLE 语句查看 admin 表的详细信息。

(3)roles 表

权限信息(roles)表主要用来存放权限信息,如下所示。 

在用户评论表(comment)中,以新闻编号(news_id)进行分类,并统计每条新闻的评论数量,mysql,数据库 

根据表的内容创建 roles 表,SQL 语句如下: 

CREATE TABLE roles(
roleID INT PRIMARY KEY UNIQUE NOT NULL,
roleName VARCHAR(20) NOT NULL
); 

 创建完成后,可以使用 DESC 语句查看 roles 表的基本结构,也可以通过 SHOW CREATE TABLE 语句查看 roles 表的详细信息。

(4)news 表

新闻信息(news)表主要用来存放新闻信息,如下 、所示

在用户评论表(comment)中,以新闻编号(news_id)进行分类,并统计每条新闻的评论数量,mysql,数据库 

 根据表的内容创建 news 表,SQL 语句如下:

CREATE TABLE news(
newsID INT PRIMARY KEY UNIQUE NOT NULL,
newsTitle VARCHAR(50) NOT NULL,
newsContent TEXT NOT NULL,
newsDate TIMESTAMP,
newsDesc VARCHAR(50) NOT NULL,
newsImagePath VARCHAR(50),
newsRate INT,
newsIsCheck BIT,
newsIsTop BIT
); 

 创建完成后,可以使用 DESC 语句查看 news 表的基本结构,也可以通过 SHOW CREATE TABLE 语句查看 news 表的详细信息。

(5)category 表

栏目信息(categroy)表主要用来存放新闻栏目信息,如下所示。 

在用户评论表(comment)中,以新闻编号(news_id)进行分类,并统计每条新闻的评论数量,mysql,数据库 

 根据表的内容创建 categroy 表。创建 categroy 表的 SQL 语句如下:

CREATE TABLE categroy (
categoryID INT PRIMARY KEY UNIQUE NOT NULL,
categoryName VARCHAR(50) NOT NULL, 
categoryDesc VARCHAR(50) NOT NULL
); 

 创建完成后,可以使用 DESC 语句查看 categroy 表的基本结构,也可以通过 SHOW CREATE TABLE 语句查看 categroy 表的详细信息

(6)comment 表

评论信息(comment)表主要用来存放新闻评论信息,如下所示 

在用户评论表(comment)中,以新闻编号(news_id)进行分类,并统计每条新闻的评论数量,mysql,数据库 

 根据表的内容创建 comment 表,SQL 语句如下:

CREATE TABLE comment (
commentID INT PRIMARY KEY UNIQUE NOT NULL,
commentTitle VARCHAR(50) NOT NULL,
commentContent TEXT NOT NULL,
commentDate DATETIME
); 

 创建完成后,可以使用 DESC 语句查看 comment 表的基本结构,也可以通过 SHOW CREATE TABLE 语句查看 comment 表的详细信息。

(7) admin_Roles 表

管理员_权限(admin_Roles)表主要用来存放管理员和权限的关系,如下所示。 

在用户评论表(comment)中,以新闻编号(news_id)进行分类,并统计每条新闻的评论数量,mysql,数据库 

 根据表的内容创建 admin_Roles 表,SQL 语句如下:

CREATE TABLE admin_Roles (
aRID INT PRIMARY KEY UNIQUE NOT NULL,
adminID INT NOT NULL,
roleID INT NOT NULL
); 

 创建完成后,可以使用 DESC 语句查看 admin_Roles 表的基本结构,也可以通过 SHOW CREATE TABLE 语句查看 admin_Roles 表的详细信息。

(8)news_Comment 表

新闻_评论(news_Comment)表主要用来存放新闻和评论的关系,如下 所示。 

在用户评论表(comment)中,以新闻编号(news_id)进行分类,并统计每条新闻的评论数量,mysql,数据库 

 根据表的内容创建 news_Comment 表,SQL 语句如下:

CREATE TABLE news_Comment (
nCommentID INT PRIMARY KEY UNIQUE NOT NULL,
newsID INT NOT NULL,
commentID INT NOT NULL
); 

 创建完成后,可以使用 DESC 语句查看 news_Comment 表的基本结构,也可以通过 SHOW CREATE TABLE 语句查看 news_Comment 表的详细信息。

(9)users_Comment 表

用户_评论(users_Comment)表主要用来存放用户和评论的关系,如表所示。 

在用户评论表(comment)中,以新闻编号(news_id)进行分类,并统计每条新闻的评论数量,mysql,数据库 

 根据表的内容创建 users_Comment 表,SQL 语句如下

CREATE TABLE news_Comment (
uCID INT PRIMARY KEY UNIQUE NOT NULL,
userID INT NOT NULL,
commentID INT NOT NULL
); 

 创建完成后,可以使用 DESC 语句查看 users_Comment 表的基本结构,也可以通过 SHOW CREATE TABLE 语句查看 users_Comment 表的详细信息。

设计索引 

索引是创建在表上的,是对数据库中一列或者多列的值进行排序的一种结构。索引可以提高 查询的速度。新闻发布系统需要查询新闻的信息,这就需要在某些特定字段上建立索引,以便提高 查询速度。   

  • 在 news 表上建立索引

新闻发布系统中需要按照 newsTitle 字段、newsDate 字段和 newsRate 字段查询新闻信息。

本小节将使用 CREATE INDEX 语句和 ALTER TABLE 语句创建索引。 下面使用 CREATE INDEX 语句在 newsTitle 字段上创建名为 index_new_title 的索引。SQL 语 句如下: 

CREATE INDEX index_new_title ON news(newsTitle); 

 然后,使用 CREATE INDEX 语句在 newsDate 字段上创建名为 index_new_date 的索引。SQL 语句如下:

CREATE INDEX index_new_date ON news(newsDate); 

 最后,使用 ALTER TABLE 语句在 newsRate 字段上创建名为 index_new_rate 的索引。SQL 语句如下:

ALTER TABLE news ADD INDEX index_new_rate (newsRate); 
  •  在 categroy 表上建立索引

在新闻发布系统中,需要通过栏目名称查询该栏目下的新闻,因此需要在这个字段上创建索 引。创建索引的语句如下:

CREATE INDEX index_categroy_name ON categroy (categroyName); 

 代码执行完成后,读者可以使用 SHOW CREATE TABLE 语句查看 categroy 表的详细信息。

  • 在 comment 表上建立索引 

新闻发布系统需要通过 commentTitle 字段和 commentDate 字段查询评论内容,因此可以在这 两个字段上创建索引。创建索引的语句如下:

CREATE INDEX index_comment_title ON comment (commentTitle);
CREATE INDEX index_comment_date ON comment (commentDate); 

 代码执行完成后,读者可以通过 SHOW CREATE TABLE 语句查看 comment 表的结构。

设计视图 

视图是由数据库中一个表或者多个表导出的虚拟表,作用是方便用户对数据的操作。在这个 新闻发布系统中,也设计了一个视图改善查询操作。

在新闻发布系统中,如果直接查询 news_Comment 表,显示信息时会显示新闻编号和评论编 号。这种显示不直观,为了以后查询方便,可以建立一个视图 news_view。这个视图显示评论编号、 新闻编号、新闻级别、新闻标题、新闻内容和新闻发布时间。创建视图 news_view 的 SQL 代码如 下: 

CREATE VIEW news_view 
AS SELECT c.commentID,n.newsID,n.newsRate,n.newsTitle,n.newsContent,n.newsDate
FROM news_Comment c,news n
WHERE news_Comment.newsID=news.newsID; 

 news_Comment 表的别名为 c,news 表的别名为 n,这个视图从这两个表中取出相应的字段。 视图创建完成后,可以使用 SHOW CREATE VIEW 语句查看 news_view 视图的详细信息。

设计触发器 

触发器由 INSERT、UPDATE 和 DELETE 等事件来触发某种特定的操作。满足触发器的触发 条件时,数据库系统就会执行触发器中定义的程序语句。这样做可以保证某些操作之间的一致性。 为了使新闻发布系统的数据更新更加快速和合理,可以在数据库中设计几个触发器。 

  • 设计 UPDATE 触发器 

在设计表时,news 表和 news_Comment 表的 newsID 字段的值是一样的。如果 news 表中的 newsID 字段的值更新了,那么 news_Comment 表中的 newsID 字段的值也必须同时更新。这可以通 过一个 UPDATE 触发器来实现。创建 UPDATE 触发器 update_newsID 的 SQL 代码如下: 

DELIMITER &&
CREATE TRIGGER update_newsID AFTER UPDATE
ON news FOR EACH ROW
BEGIN
 UPDATE news_Comment SET newsID=NEW. newsID
END
&&
DELIMITER ; 

 其中,NEW.newsID 表示 news 表中更新的记录的 newsID 值。

  • 设计 DELETE 触发器 

如果从 user 表中删除一个用户的信息,那么这个用户在 users_Comment 表中的信息也必须同 时删除。这也可以通过触发器来实现。在 user 表上创建 delete_user 触发器,只要执行 DELETE 操 作,就删除 users_Comment 表中相应的记录。创建 delete_user 触发器的 SQL 语句如下: 

DELIMITER &&
CREATE TRIGGER delete_user AFTER DELETE
ON user FOR EACH ROW
BEGIN
 DELETE FROM users_Comment WHERE userID=OLD.userID
END
&&
DELIMITER ; 

 其中,OLD.userID 表示新删除的记录的 userID 值文章来源地址https://www.toymoban.com/news/detail-783221.html

到了这里,关于MySQL实现—新闻发布系统数据库设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Python的Requests和BeautifulSoup库来爬取新闻网站的新闻标题、发布时间、内容等信息,并将数据存储到数据库中

    BeautifulSoup是Python的一个HTML/XML解析库,用于从HTML或XML文件中提取数据。结合Python的requests库,可以实现网页爬取和数据提取。 以下是一个简单的使用BeautifulSoup和requests库实现爬虫的示例:   用requests库和BeautifulSoup4库,爬取校园新闻列表的时间、标题、链接、来源。

    2024年02月10日
    浏览(52)
  • 基于PHP+小程序(MINA框架)+Mysql数据库的有声读物音频播放小程序系统设计与实现

    目的: 小程序是一种不需要下载安装即可使用的应用,它实现了应用触手可及的梦想,用户扫一扫或者搜一下即可打开应用。另一方面,面对有声阅读的收费化,广告化的趋势,我希望给用户提供免费、舒适、纯粹的阅读体验,让有声阅读成为用户的移动图书馆,也让那些没

    2024年02月06日
    浏览(47)
  • MySQL数据库设计作业 ——《网上书店系统》数据库设计实验报告

    普通用户:可以进行最基础的登陆操作,可浏览图书、按类别查询图书、查看 图书的详细信息,还可以注册成为会员。 会员:需要填写详细信息(真实姓名、性别、手机号、地址、邮箱等),可浏览图书、按类别查询图书、查看图书的详细信息,在此基础上,还可以订购图

    2024年02月04日
    浏览(72)
  • 基于SSM的澄海区人民新闻中心管理系统--67273(免费领源码+数据库)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案

    随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,地方政府当然也不能排除在外。人民新闻中心管理系统是以实际运用为开发背景,运用软件工程开发方法,采用SSM技术构建的一个管理系统。整个开发过

    2024年02月21日
    浏览(51)
  • 【数据库——MySQL(实战项目1)】(1)图书借阅系统——数据库结构设计

    经过前期的学习,我们已经掌握数据库基础操作,因此是时候来做一个实战项目了—— 图书借阅系统 。对于图书借阅系统,相信大家不难想到至少需要 3 张表,分别是: 借阅人表 , 图书表 和 借阅信息表 (当然不限于这些表,大家可以根据自己的想法创建其它表)。 那么

    2024年02月03日
    浏览(65)
  • MySQL-数据库设计与实现

    将已建好的概念模型,变成MySQL物理实现。 1.数据库设计的阶段和每阶段的任务; 2.概念模型; 3.逻辑模型及其与概念模型的关系; 4.在DBMS中的物理实现。 数据库的设计大致分为以下几个阶段: 需求分析 根据业务需求,确定应用系统所涉及的数据(信息),以及处理需 求,形

    2024年02月08日
    浏览(89)
  • 4.2 图书借阅系统数据库设计 --MySQL

    大家好,我是天罡gg,一个有十多年丰富经验的高级架构师,参与过很多系统的数据库设计,在数据库设计方面有相当丰富的经验。正赶上这篇实战专栏的数据库设计,所以今天让我们来一起做一下《图书借阅系统的数据库设计》,一篇既有理论知识,又能实战落地的数据库

    2023年04月20日
    浏览(42)
  • 新闻发布及管理系统的设计与实现(论文+PPT+源码)

    本 科 毕 业 设 计(论文)题 目:新闻发布及管理系统的设计与实现专题题目: 本 科 毕 业 设 计(论文)任 务 书 题 目:新闻发布及管理系统的设计与实现 专题题目 (若无专题则不填): 原始依据 (包括设计(论文)的工作基础、研究条件、应用环境、工作目的等): 工

    2024年02月05日
    浏览(85)
  • 网上商城系统MySql数据库设计项目实战

    说明:这是一个数据库课程设计实战项目(附带 代码+文档+视频讲解 ),如需 代码+文档+视频讲解 可以直接到文章最后获取。 项目背景         互联网的发展让各个产业突破传统的发展领域,产业功能不断进化,实现同一内容的多领域共生,前所未有地扩大了传统产业链,

    2024年01月25日
    浏览(51)
  • 学生信息管理系统的数据库设计MySQL

    1.课程设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包