新闻资讯CMS内容管理系统的设计与实现(一)

2023-10-30

新闻资讯CMS内容管理系统的设计与实现(一)

目录:

1、项目背景:

2、项目规划:

3、系统结构图:

4、系统架构图:

5、系统用例图:

6、业务流程图:

7、E-R图:

8、领域模型:

9、数据字典:

10、DDL建表语句:

11、数据流图:


1、项目背景:

如标题,新闻资讯CMS内容管理系统的设计与实现,主要功能包括浏览新闻、编辑发布、用户管理、评论回复、文章收藏、广告管理、分栏管理等等。

后台框架:Spring + Spring MVC + Mybatis

前端框架:JQuery + Bootstrap

数据库管理系统:MySQL

项目构建工具:Maven

服务器:Apache Tomcat

项目开发IDE:IntelliJ IDEA

虽然时间很紧,还是决定整个系统从0到1的重头来过,最新消息5月21日要上交最终版的论文,这下事情开始变得有趣了。

2、项目规划:

下面的图是给自己订的小计划,望坚持。

图2.1 项目规划表

3、系统结构图:


图3.1 系统结构图

4、系统架构图:


图4.1 技术架构图

5、系统用例图:

用例用于描述一个完整的系统事件流程,其重点在于参与者与系统之间的交互而不是内在的系统活动,并对系统参与者产生有价值的可观测结果。

(1)关系(Relationship):

A)关联关系:

①定义:所有关系中最通用同时也是语义最弱的关系。包括聚合关系和组合关系。

②使用:参与者与用例之间。

③表示符号:实线箭头,箭头指向消息接收方

B)实现关系:

①定义:用来规定接口和实现接口的类或组件之间的关系。

②使用:用例之间。

③表示符号:虚线箭头和三角形,箭头指向接口。

C)泛化关系:

①定义:描绘了从特殊事物到一般事物之间的关系,即子类到父类之间的关系。

②使用:参与者之间或者用例之间。

③表示符号:实线箭头和三角形,箭头指向父用例。

D)依赖关系:

①定义:表示两个或多个模型元素之间语义上的依赖关系,即源用例依赖于目标用例,包括使用依赖、抽象依赖、授权依赖和绑定依赖。

②使用:用例之间。

③表示符号:虚线箭头,箭头指向被依赖的用例

E)扩展关系:

①定义:表示一个用例扩展另一个用例的功能。

②使用:用例之间。

③表示符号:虚线箭头和<extend>字样,箭头指向基础用例。

(2)参与者(Actor):超级管理员用户、普通用户、讯息发布用户、游客用户

(3)用例(Use Case):

A)与超级管理员用户有关的用例:

文章管理:在系统中查看文章列表,审核发布的文章信息。

用户管理:在系统中查看用户信息列表,打印用户信息,审核讯息发布用户信息。

栏目管理:在系统中查看栏目列表,增加、修改、删除栏目信息。

广告管理:在系统中查看广告列表,增加、修改、删除广告信息。

B)与普通用户有关的用例:

栏目查看:在系统中查看栏目信息。

文章查看:在系统中查看文章具体内容信息。

广告查看:在系统中查看广告信息。

文章搜索:在系统中查询文章信息。

评论回复:在系统中对文章进行评论或对评论进行回复。

图片收藏:在系统中收藏新闻图片。

文章收藏:在系统中收藏文章

注册登录:在系统中进行登录注册,以验证其身份是否合法,是否具有相应权限。

C)与讯息发布用户有关的用例:

文章编辑:在系统中编辑文章信息。

注册登录:在系统中进行登录注册,以验证其身份是否合法,是否具有相应权限。

D)与游客用户有关的用例:

栏目查看:在系统中查看栏目信息。

文章查看:在系统中查看文章具体内容信息。

广告查看:在系统中查看广告信息。

文章搜索:在系统中查询文章信息。


图5.1 系统用例图

6、业务流程图:

准备进行的项目设计包括两部分,一部分是前端的新闻展示页面,另一部分是用于超级管理员用户进行管理的后台管理页面。

图6.1 前台展示系统业务流程图


图6.2 后台管理系统业务流程图

7、E-R图:

(1)实体(entity):数据模型中的数据对象,用矩形来表示。

弱实体(weak entity):该实体必须依赖于另一个实体存在,用双线矩形来表示。

(2)属性(attribute):数据对象所具有的属性,用椭圆形来表示。

按唯一性划分:

唯一属性(unique attribute):加下划线

非唯一属性(non-unique attribute)

按类别划分:

复合属性(composite attribute):多个属性的组合。如学生实体有名字属性,姓名属性又包含姓属性和名字属性,用椭圆形来表示。

派生属性(derived attribute):非持久性属性,从别的属性值或数据派生出来,用虚椭圆来表示。

可选属性(optional attribute):可以为null的属性,在椭圆的文字后用(O)来表示。

联系属性(relational attribute):表示多个实体之间的联系所具有的属性,用椭圆形来表示。

多值属性(multi-valued attribute):一个实体的某个属性有多个不同的取值,用双线椭圆形来表示。

(3)关系(relationship):表现数据对象之间的联系,用菱形来表示。


图7.1 E-R图

8、领域模型:

领域模型由PowerDesigner进行绘制,在绘制时,其中P:主键 F:外键 M:非空。


图8.1 领域模型

9、数据字典:


图9.1 广告表数据字典


图9.2 栏目表数据字典


图9.3 评论表数据字典


图9.4 用户表数据字典


图9.5 新闻表数据字典


图9.6 热闻表数据字典

10、DDL建表语句:

drop table if exists t_advertisement;

drop table if exists t_category;

drop table if exists t_comment;

drop table if exists t_hotspots;

drop table if exists t_news;

drop table if exists t_user;

/*==============================================================*/
/* Table: t_advertisement                                       */
/*==============================================================*/
create table t_advertisement
(
   advertisement_id     int not null auto_increment,
   user_id              varchar(128),
   creator_id           varchar(128) not null,
   advertisement_img    varchar(256) not null,
   advertisement_url    varchar(256) not null,
   clicks_count         int not null,
   create_time          datetime not null,
   update_time          datetime not null,
   primary key (advertisement_id)
);

/*==============================================================*/
/* Table: t_category                                            */
/*==============================================================*/
create table t_category
(
   category_id          int not null auto_increment,
   user_id              varchar(128),
   category_name        varchar(128) not null,
   creator_id           varchar(128) not null,
   category_pid         int not null,
   create_time          datetime not null,
   update_time          datetime not null,
   primary key (category_id)
);

/*==============================================================*/
/* Table: t_comment                                             */
/*==============================================================*/
create table t_comment
(
   comment_id           int not null auto_increment,
   user_id              varchar(128) not null,
   comment_parent_id    int not null,
   comment_content      varchar(500) not null,
   comment_state        int not null,
   news_id              int not null,
   create_time          datetime not null,
   primary key (comment_id)
);

/*==============================================================*/
/* Table: t_hotspots                                            */
/*==============================================================*/
create table t_hotspots
(
   hotspots_id          int not null auto_increment,
   news_id              int not null,
   news_score           decimal(5,2) not null,
   news_publishTime     datetime not null,
   update_time          datetime not null,
   primary key (hotspots_id)
);

/*==============================================================*/
/* Table: t_news                                                */
/*==============================================================*/
create table t_news
(
   news_id              int not null auto_increment,
   news_title           varchar(128) not null,
   news_pic             varchar(200),
   news_content         varchar(5000) not null,
   news_publishTime     datetime not null,
   news_readingNumber   int not null,
   news_commentCount    int not null,
   category_id          int not null,
   user_id              varchar(128) not null,
   update_time          datetime not null,
   primary key (news_id)
);

/*==============================================================*/
/* Table: t_user                                                */
/*==============================================================*/
create table t_user
(
   user_id              varchar(128) not null,
   user_name            varchar(128) not null,
   user_email           varchar(256) not null,
   user_type            int not null,
   user_password        varchar(128) not null,
   user_headPortrait    varchar(256),
   create_time          datetime not null,
   update_time          datetime not null,
   primary key (user_id)
);

alter table t_advertisement add constraint FK_fk_user_advert foreign key (user_id)
      references t_user (user_id) on delete cascade on update cascade;

alter table t_category add constraint FK_fk_user_category foreign key (user_id)
      references t_user (user_id) on delete cascade on update cascade;

alter table t_comment add constraint FK_fk_news_comment foreign key (news_id)
      references t_news (news_id) on delete cascade on update cascade;

alter table t_comment add constraint FK_fk_user_comment foreign key (user_id)
      references t_user (user_id) on delete cascade on update cascade;

alter table t_hotspots add constraint FK_t_hotspots_news foreign key (news_id)
      references t_news (news_id) on delete cascade on update cascade;

alter table t_news add constraint FK_fk_news_category foreign key (category_id)
      references t_category (category_id) on delete cascade on update cascade;

alter table t_news add constraint FK_fk_news_user foreign key (user_id)
      references t_user (user_id) on delete cascade on update cascade;

11、数据流图:

数据流图(DFD,Data Flow Diagram):

(1)数据流图的四种基本成分:

A)数据对象:用带箭头的实线表示,箭头指向数据流动的方向。在编号之首冠以字母L表示。

B)外部实体:用矩形表示,系统之外的人或事物,包括数据源(来源)和数据池(目的地)。在编号之首冠以字母S表示。

C)加工处理:用椭圆表示,反应的是数据对象的变换,要编号。在编号之首冠以字母P表示。

D)数据存储:用双线表示,可以是数据文件或记录。在编号之首冠以字母F表示。

(2)方法:

A)确定系统的输入输出。

B)由外向内画系统的顶层数据流图

C)自顶向下逐层分解,给出分层数据流图。

(3)数据流的流向:

A)P->P

B)S->P

C)P->D

D)P->F

F)F->P

(4)顶层数据流图:说明系统的功能,指出I/O数据流,由外部实体划定系统的边界。

逐层画出数据流的过程就是自顶向下,逐层对加工处理进行分解的过程。

命名:DFD/0(顶层)、DFD/1(一层)、DFD/2(二层)

通常顶层只含有一个加工处理,顶层和一层只有一张图。以下的各层可能有多张图。

(5)加工处理编号说明:

A)每一个加工处理要有加工编号,加工编号由图号加上加工的顺序号组成,图号和加工的顺序号之间用圆点隔开。

B)基本加工处理的加工编号前要打一个*号。

 新闻资讯CMS内容管理系统顶层数据流图:


图11.1 顶层数据流图


图11.2 按用户细分的顶层数据流图

对于超级管理员用户来说,其下层数据流图包括:


图11.3 超级管理员用户关于用户信息的数据流图


图11.4 超级管理员用户关于栏目信息的数据流图


图11.4 超级管理员用户关于新闻信息的数据流图


图11.5 超级管理员用户关于广告信息的数据流图

对于讯息发布用户来说,其下层数据流图包括:


图11.6 讯息发布用户关于登录注册信息的数据流图


图11.7 讯息发布用户关于新闻信息的数据流图

对于普通用户来说,其下层数据流图包括:


图11.8 普通用户关于广告信息的数据流图


图11.9 普通用户关于栏目信息的数据流图


图11.10 普通用户关于评论信息的数据流图


图11.11 普通用户关于新闻及热闻信息的数据流图


图11.12 普通用户关于登录注册信息的数据流图

对于游客用户来说,其下层数据流图包括:


图11.13 游客用户关于新闻及热闻信息的数据流图


图11.14 游客用户关于栏目信息的数据流图


图11.15 游客用户关于广告信息的数据流图


图11.16 游客用户关于评论信息的数据流图

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

新闻资讯CMS内容管理系统的设计与实现(一) 的相关文章

  • intellij idea vue js 报ESLint: Expected indentation of 0 spaces but found 2. (indent)错误解决方法

    ESLint这东西是真的烦 把人当做机器来验证 没办法 遇到他了 死磕 就因为script后面的内容被idea格式化之后空了两格 这就不得了了 你一个警告 总是搞一个error的标志 难道不知道程序员最忌讳的就是打断吗 你要求严格 也不能这
  • eclipse下新建maven web工程(是web工程!)以及部署maven web工程到tomcat服务器

    一 eclipse新建maven web工程 1 在菜单栏File gt New下面找到Maven Project 2 勾选上Create a simple project 不使用骨架 Next 3 填写工程名称和包名 并选择war类型 一
  • Java Web实用开发技术-图形验证码

    图形验证码生成 地址为checkcode package servlet import java awt import java awt image BufferedImage import java io ByteArrayOutputS
  • Java web前端——JavaScript基础使用

    JavaScript概述 1 1 JavaScript简介 JavaScript LiveScript 一种解释性脚本语言 是一种动态类型 弱类型 基于原型继承的语言 内置支持类型 它的解释器被称为JavaScript引擎 为浏览器的一部分
  • 自己实现图形验证码

    如果不想重复造轮子 参考上一篇文章 SpringBoot生成图形验证码 Muscleheng的博客 CSDN博客 这里不需要依赖开源组件包 完全自己实现图形验证码功能 两步完成 第一步 编写图形验证码工具 package com zhh d
  • smbms-AJAX验证旧密码实现

    优化密码修改使用ajax 主要是与前端接轨 1 阿里巴巴fastjson maven导入 导入包
  • Eclipse安装LomBok插件

    1 使用LomBok的好处在于实体类不用手动去生成set get方法了 类会在编译时自动生成 是代码简洁节省工作量 2 maven项目的pom文件添加坐标下载
  • java.lang.ClassNotFoundException: sun.misc.CharacterDecoder解决方案

    报错是因为引入了下面的包 import sun misc BASE64Decoder import sun misc BASE64Encoder 一如既往的百度 网上大神说需要操作eclipse 如果你使用的是eclipse的话 中的JRE
  • 公众号(服务号)模板消息(个人通知)开发方案

    公众号消息通知 微信公众号开发文档 公众号是以微信用户的一个联系人形式存在的 消息会话是公众号与用户交互的基础 目前公众号内主要有这样几类消息服务的类型 分别用于不同的场景 1 群发消息 公众号可以以一定频次 订阅号为每天1次 服务号为每月
  • 实现内网https 内网部署https SpringBoot

    最近项目中要在内网中部署https网址 之前对https完全不了解 一脸懵逼 好在在一顿疯狂必应之后 成功完成了部署 首先需要明确的是 由于是在内网部署 所以完全不需要搞得那么复杂 宝塔啊 申请域名啊什么的 零 前置条件 在本地安装好jdk
  • Spring属性注入方式

    1 Spring也表示一个开源框架 是为了解决企业程序应用开发的复杂性 框架的主要优势之一就是其分层架构 分层架构允许使用者选择使用哪一个组件 同时为J2EE应用程序开发提供集成的框架 Spring使用基本的bean来完成以前只能由EJB完
  • vlc web 插件 js接口

    Embed tag attributes To embed the plugin into a webpage use the following template Required ele
  • JBOSS实践一:安装

    因为工作关系 需要接受一套基于JBOSS容器的应用 首先从JBOSS环境搭建开始 JBOSS环境可以在一台机器上运行 也可以在一台机器上部署多套JBOSS 一 目标 1 在一台机器上部署JBOSS 4 2 2 GA 原系统运行于此 2 在一
  • Java Web如何限制访问的IP的两种方法

    Java Web限制IP访问的两种方法 前一阵子因为在做项目时碰到了这个功能 现在好好总结一下 至于为什么要限制IP访问 我就不多说了 然后百度了一下 现在主要有两种方式去限制IP访问 第一种是最简单的方便的 第二种是通过过滤器来限制访问
  • 基于SSM框架的多文件上传Controller类编写

    前端代码
  • mybatis批量插入后获取自增ID

    mybatis批量插入后获取自增ID 上代码 Mapper java 批量新增产品元素 param elementList 产品元素列表 return 结果 public int insertOrderElement List
  • 超详细的用IDEA整合SSM框架和profile 配置环境

    SSM作为现在最流行的开发框架 很大的提升了开发效率 一些同学在SSM基础上的整合一些更实用的开发基础框架 被用来作为快速开发的基础框架 本次实践主要是以下3个目标 从最基础的SSM框架做起 摸索和处理SSM框架整合中可能会遇到的问题 使用
  • 基于Spring Boot 框架的试卷自动生成系统的设计与实现

    项目描述 临近学期结束 还是毕业设计 你还在做java程序网络编程 期末作业 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 你想解决的问题 今天给大家介绍一篇基于Spring Boot
  • 基于ssm的简单学校课程管理系统的设计与实现(源码+调试)

    项目描述 临近学期结束 还是毕业设计 你还在做java程序网络编程 期末作业 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 今天给大家介绍一篇基于ssm的简单学校课程管理系统的设计与实
  • 基于Springboot的高校教学评价系统的设计与实现(源码+调试)

    项目描述 临近学期结束 还是毕业设计 你还在做java程序网络编程 期末作业 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 今天给大家介绍一篇基于Springboot的高校教学评价系统

随机推荐

  • keras测试环境搭建

    使用的是windows 22h2 在windows中测试 目前看 如果所有用到的库都是pip可以安装的 就可以在windows测试 考虑cuda cudnn对于操作系统的影响太大了 所以只测试了DirectML 安装python3 8 安装
  • 密码爆破总结

    密码爆破经验分享 什么是密码爆破 密码爆破 通过不断输入密码试错 直到成功为止 密码爆破原理 原理 通过不断请求连接 修改连接中的参数 把对应密码的参数遍历字典 自己创建 或者网上获取 根据连接返回的参数来确定是否爆破成功 总结 建立连接
  • MacOS提示【您没有权限来打开应用程序“XXX”。】的完美解决办法

    前言 在 macOS Big Sur 系统下运行一些注册机类的应用程序 大概率会提示 您没有权限来打开应用程序 XXX 请联系您的电脑或网络管理员以获得帮助 信息 具体如下图 下面给出解决办法 说明 本人电脑为新款 MacBook Pro
  • vuex内容及使用详解

    Vuex是什么 Vuex 是一个专为 Vue js 应用程序开发的状态管理模式 它采用集中式存储管理应用的所有组件的状态 并以相应的规则保证状态以一种可预测的方式发生变化 说起状态管理模式 就不得不提起一个名词 单向数据流 单向数据流 在V
  • ubuntu vi/vim退出文件

    要退出 但是不保存 按esc先 然后输入 q 回车键即可退出 无法退出 则在 q 加入一个叹号回车键就行了 要退出保存的 则输入 wq 强制保存退出 则输入 wq 看到此时已经退出 在等待命令状态 以nano开头编辑文件的 则要退出 按 C
  • SQL Server学习之复合索引

    概要什么是单一索引 什么又是复合索引呢 何时新建复合索引 复合索引又需要注意些什么呢 本篇文章主要是对网上一些讨论的总结 一 概念单一索引是指索引列为一列的情况 即新建索引的语句只实施在一列上 用户可以在多个列上建立索引 这种索引叫做复合索
  • GPT系列模型技术路径演进

    目录 前言 Transformer GPT 1 BERT GPT 2 GPT 3 InstructGPT ChatGPT GPT 4 类ChatGPT产品 Google Bard 诗人 facebook LLaMA 羊驼 复旦 MOSS 清
  • 源码安装ODOO12

    要从源码安装 Odoo 我们首先要从 GitHub 上克隆一套 Odoo 源代码 mkdir home tderp conda envs odoo12 odoo dev 在odoo12虚环境下创建工作目录 cd home tderp con
  • linux怎么打开.o文件,Linux下文件I/O操作的相关知识

    Linux文件I O主要指的是文件的输入输出 很多初学者对文件的I O不是很了解 Linux文件I O的操作较多 下面小编就给大家详细介绍下Linux文件I O linux 文件I O教程 1 一 文件描述符 对内核而言 所以打开的文件都通
  • Android UI架构(十)--App请求切换帧率(1).md

    文章目录 参考资料 前言 背景 查看设备可支持的刷新率和分辨率 App设置设备帧率 Android Q及以下版本 Android R 参考资料 https zhuanlan zhihu com p 142212769 from voters
  • CC00041.bigdatajava——

    一 逻辑运算符概念使用 逻辑运算短路特性 逻辑运算符概念 gt 表示逻辑与运算符 相当于 并且 同真为真 一假为假 gt 表示逻辑或运算符 相当于 或者 一真为真 同假为假 gt 表示逻辑非运算符 相当于 取反 真为假 假为真 gt 逻辑运
  • ES(四)ES使用(基本查询、聚合查询)

    基本操作 操作索引 1 新建索引 curl XPUT localhost 9200 index01 2 查看索引 curl XGET http 192 168 168 101 9200 index01 settings curl XGET
  • Session和Cookie的用法及区别

    Session Cookie是什么 1 1 概念理解 要了解session和cookie是什么 先要了解以下几个概念 1 1 1 无状态的HTTP协议 协议 是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则 超文本传输协
  • 独立服务器和虚拟主机,浅谈独立服务器、云服务器、虚拟主机的区别

    当代的生活离不开网络的使用 不管是电商 游戏 还是视频行业 很多业务都需要依赖网络才得以开展 包括海外市场的推广与后期的联系巩固 真是巨大的市场需求 也使网络根据一些特性与使用衍生出了不同的类型 包括服务器 云服务器 虚拟主机等 那么 小编
  • 解决 k8s 集群1.26.3使用nfs时nfs provider selfLink was empty

    背景 1 使用1 26 3版本的集群 2 搭建nfs服务器 3 使用storageclass创建pvc时 一直pending 4 尝试修改vim etc kubernetes manifests kube apiserver yaml 文件
  • makefile工具的使用,编写一个或多个文件!(简单易上手)

    一 make 和 makefile 是什么 1 make 是一个 命令 2 makefile 是一个 文件 可以自动化的构建项目 3 编写 makefile 需要 1 依赖关系 2 依赖方法 二 什么是依赖关系 什么是依赖方法 下面我简单写
  • JUC学习系列五(ThreadLocal)

    该类提供了线程局部 thread local 变量 这些变量不同于它们的普通对应物 因为访问某个变量 通过其 get 或 set 方法 的每个线程都有自己的局部变量 它独立于变量的初始化副本 ThreadLocal 实例通常是类中的 pri
  • 删除oracle数据库用户

    如果在drop 后还提示ORA 01940 无法删除当前已链接的用户 说明还有连接的session 可以通过查看session的状态来确定该session是否被kill 了 用如下语句查看 select saddr sid serial p
  • selenium官方文档——2.入门

    2 1 简单用法 如果你已经安装了Selenium Python绑定 你可以像这样从Python开始使用它 from selenium import webdriver from selenium webdriver common keys
  • 新闻资讯CMS内容管理系统的设计与实现(一)

    新闻资讯CMS内容管理系统的设计与实现 一 目录 1 项目背景 2 项目规划 3 系统结构图 4 系统架构图 5 系统用例图 6 业务流程图 7 E R图 8 领域模型 9 数据字典 10 DDL建表语句 11 数据流图 1 项目背景 如标