基于 SpringBoot 的新冠密接者跟踪系统:如何实现高效信息推送功能

news2024/12/1 8:31:07

第2章 程序开发技术
2.1 Mysql数据库
为了更容易理解Mysql数据库,接下来就对其具备的主要特征进行描述。
(1)首选Mysql数据库也是为了节省开发资金,因为网络上对Mysql的源码都已进行了公开展示,开发者根据程序开发需要可以进行下载,并做一些改动就可以使用在程序中,可以推动开发者开发此程序的开发进度。
(2)SQL数据语言在Mysql里面也同样适用
(3)Mysql不仅可以支持多种编程语言,比如在校期间学到的C语言,Java语言,以及课后接触的PHP语言,C++语言等编程语言,它都能很好的支持,而且Mysql的安装与使用还不挑剔使用平台。
(4)Mysql可以支持具有千万条数据记录的数据库,电脑操作系统在进行首次安装或者是重装时,可以根据需要选择安装32位或64位操作系统,这两种操作系统对表文件的支持力度不一样,32位的操作系统最多可以存放4GB的表文件,64位操作系统最多可以存放8TB的表文件。
(5)Mysql数据库可以通过GPL协议进行个性化定制,需要开发者自己对数据库的源代码进行修改,以此开发出属于自己的Mysql。
2.2 Java语言
程序开发语言有很多,但是截至目前,Java语言在IT领域内,仍然是最被认可,以及被广泛运用的编写语言之一,因此在选择此程序的编写语言上,果断选择这门编程语言进行程序开发。可以说经过了这么多年的发展,Java语言不仅在Web开发领域有了突出性贡献,而且在大数据开发领域以及Android开发领域都得到了广泛运用。由于Java语言拥有较强的扩展性能,并且表现出的稳定性能,让其成为大型后端系统开发语言首选,现如今,Java语言也成为了一种常用的互联网平台的解决方案。
作为一种源码在网络上开源的面向对象的程序开发Java语言,由它开发完成的程序是不可能直接运行在各大平台的,Java程序的运行,需要在操作平台上配置其运行的环境,包括数据库软件与Java程序开发软件等工具的安装与配置。在Win7,Win10或其它操作平台上配置Java程序运行环境,只要环境配置成功,Java程序都可以运行起来。

第4章 系统设计
4.1 系统设计的原则
在系统设计过程中,也需要遵循相应的设计原则,这些设计原则可以帮助设计者在短时间内设计出符合设计规范的设计方案。设计原则主要有可靠性,安全性,可定制化,可扩展性,可维护性,可升级性以及客户体验等原则。下面就对这些原则进行简要阐述。
可靠性:一个软件是否可靠决定了其是否被用户使用,设计不可靠的软件,用户很容易就遗弃;
安全性:程序软件承担了信息的保存与管理等事务,安全性不足的软件会导致使用者承担巨大的损失;所以系统安全也是需要考虑进入的;
可定制化:市场环境从来都不是一直固定不变,面对客户群体的改变,以及使用环境的改变,市场需求的改变等因素,程序软件也要易于调整以适应各种变化;
可扩展性:程序软件在运行使用期间,也需要及时引进当下的新技术来进行系统优化,主要就是在系统功能层面,系统性能层面上进行相应的扩展,只有这样才能让系统在实际生活中继续占有市场;
可维护性:程序软件的维护需要一定量的资金,不管是排除现有程序错误,还是变更软件的现有需求,都需要在软件技术上投入一定资金,所以易于维护的软件程序就可以降低技术层面的资金消耗;
可升级性:程序软件的投入使用,会面临用户数量增多的情况,用户对软件的使用率也会提升,所以系统面临这种情况,仍然需要通过升级保持性能的合理,这样才能够适应市场;
客户体验:设计出来的程序软件在界面上不能够太复杂,要遵循界面设计的原理设计出简单,方便操作的功能操作界面,让用户易于接受软件,并乐于使用软件提供的功能。
4.2 系统结构设计
在系统结构设计上,经综合考虑还是选择比C/S更省资金的B/S结构模式,现如今浏览器已经实现了普及,并在技术上逐渐完善和成熟,它在节约软件开发成本的基础上,还能实现原本用专业软件操作才能实现的强大功能。总之,B/S结构是当下全新的,认可度高的系统构造技术。系统结构设计图通过绘制,效果展示如下:
在这里插入图片描述

图4-1 系统结构设计图
4.3功能结构设计
在管理员功能模块确定下来的基础上,对管理员各个功能进行设计,确定管理员功能的详细模块。绘制的管理员功能结构见下图。

在这里插入图片描述

图4.3 管理员功能结构图
4.4 数据库设计
开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合,存储在一起的这些数据也是按照一定的组织方式进行的。目前,数据库能够服务于多种应用程序,则是源于它存储方式最佳,具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务,但它与程序之间也可以保持较高的独立性。总而言之,数据库经历了很长一段时间的发展,从最初的不为人知,到现在的人尽皆知,其相关技术也越发成熟,同时也拥有着坚实的理论基础。
4.4.1 数据库概念设计
这部分内容需要借助数据库关系图来完成,也需要使用专门绘制数据库关系图的工具,比如Visio工具就可以设计E-R图(数据库关系图)。设计数据库,也需要按照设计的流程进行,首先还是要根据需求完成实体的确定,分析实体具有的特征,还有对实体间的关联关系进行确定。最后才是使用E-R模型的表示方法,绘制本系统的E-R图。不管是使用亿图软件,还是Visio工具,对于E-R模型的表示符号都一样,通常矩形代表实体,实体间存在的关系用菱形符号表示,实体的属性也就是实体的特征用符号椭圆表示。最后使用直线将矩形,菱形和椭圆等符号连接起来。接下来就开始对本系统的E-R图进行绘制。
(1)下图是用户实体和其具备的属性。
在这里插入图片描述

图4.1 用户实体属性图
(2)下图是疫苗实体和其具备的属性。
在这里插入图片描述

图4.2 疫苗实体属性图
(3)下图是地点实体和其具备的属性。
在这里插入图片描述

图4.3 地点实体属性图
(4)下图是用户轨迹实体和其具备的属性。
在这里插入图片描述

图4.4 用户轨迹实体属性图
(5)下图是公告信息实体和其具备的属性。
在这里插入图片描述

图4.5 公告信息实体属性图
(6)下图是口罩实体和其具备的属性。
在这里插入图片描述

图4.6 口罩实体属性图
(7)下图是疫苗预约实体和其具备的属性。
在这里插入图片描述

图4.7 疫苗预约实体属性图
(8)下图是医护人员实体和其具备的属性。
在这里插入图片描述

图4.8 医护人员实体属性图
(9)下图是核算检测实体和其具备的属性。
在这里插入图片描述

图4.9 核算检测实体属性图
(10)下图是口罩预订实体和其具备的属性。
在这里插入图片描述

图4.10 口罩预订实体属性图

4.4.2 数据库表结构
在进行这部分设计之前,需要明白和掌握数据类型以及各个数据类型的长度范围等知识,因为在一张具体的数据表中,为了方便理解,这里就举个简单的例子。比如用户信息表,这个表格的字段就是用户这个实体具备的属性,这时就需要对字段进行数据类型,以及字段长度的设置,也要设置一个主键来作为用户信息表的唯一标识。这些都是数据库表结构设计需要完成的内容。根据新冠病毒密接者跟踪系统的功能设计以及数据库设计要求,展示该系统的数据表结构。
表4.1字典表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 dic_code String 字段 是
3 dic_name String 字段名 是
4 code_index Integer 编码 是
5 index_name String 编码名字 是
6 super_id Integer 父字段id 是
7 beizhu String 备注 是
8 create_time Date 创建时间 是
表4.2地点表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 didian_name String 地点名称 是
3 didian_types Integer 地点状态 是
4 insert_time Date 添加时间 是
5 create_time Date 创建时间 是
表4.3公告信息表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 gonggao_name String 公告名称 是
3 gonggao_photo String 公告图片 是
4 gonggao_types Integer 公告类型 是
5 insert_time Date 公告发布时间 是
6 gonggao_content String 公告详情 是
7 create_time Date 创建时间 是
表4.4用户轨迹表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yonghu_id Integer 用户 是
3 didian_id Integer 地点 是
4 guiji_time Date 去的时间 是
5 insert_time Date 添加时间 是
6 create_time Date 创建时间 是
表4.5核算检测表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yonghu_id Integer 检测人 是
3 jiance_types Integer 检测结果 是
4 jiance_time Date 检测时间 是
5 insert_time Date 添加时间 是
6 create_time Date 创建时间 是
表4.6口罩表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 kouzhao_name String 口罩名称 是
3 kouzhao_types Integer 口罩类型 是
4 kouzhao_number Integer 口罩数量 是
5 kouzhao_content String 备注 是
6 insert_time Date 添加时间 是
7 create_time Date 创建时间 是
表4.7口罩预订表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yonghu_id Integer 预订人 是
3 kouzhao_id Integer 口罩 是
4 yueding_number Integer 预定数量 是
5 kouzhaoyuyue_types Integer 状态 是
6 insert_time Date 预订时间 是
7 create_time Date 创建时间 是
表4.8医护人员表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yihu_name String 医护人员姓名 是
3 yihu_phone String 医护人员手机号 是
4 yihu_id_number String 医护人员身份证号 是
5 yihu_photo String 医护人员头像 是
6 create_time Date 创建时间 是
表4.9疫苗表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yimiao_name String 疫苗名称 是
3 yimiao_types Integer 疫苗类型 是
4 yimiao_number Integer 疫苗数量 是
5 yimiao_content String 备注 是
6 insert_time Date 添加时间 是
7 create_time Date 创建时间 是
表4.10疫苗预约表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yonghu_id Integer 预约人 是
3 yimiao_id Integer 疫苗 是
4 yimiaoyuyue_types Integer 状态 是
5 insert_time Date 预约时间 是
6 create_time Date 创建时间 是
表4.11用户表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yonghu_name String 用户姓名 是
3 yonghu_phone String 用户手机号 是
4 yonghu_id_number String 用户身份证号 是
5 yonghu_photo String 用户头像 是
6 jiankang_types Integer 健康状态 是
7 create_time Date 创建时间 是
表4.12管理员表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 role String 角色 是
3 addtime Date 新增时间 是

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2250992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 自动化办公的 10 大脚本

大家好,我是你们的 Python 讲师!今天我们将讨论 10 个实用的 Python 自动化办公脚本。这些脚本可以帮助你简化日常工作,提高效率。无论是处理 Excel 文件、发送邮件,还是自动化网页操作,Python 都能派上用场。 1. 批量…

Android 使用OpenGLES + MediaPlayer 获取视频截图

概述 Android 获取视频缩略图的方法通常有: ContentResolver: 使用系统数据库MediaMetadataRetriever: 这个是android提供的类,用来获取本地和网络media相关文件的信息ThumbnailUtils: 是在android2.2(api8)之后新增的一个,该类为…

数字化转型背景下,高职院校计算机网络应用的革新策略

在当今信息化时代,计算机网络已经成为高职院校教育不可或缺的一部分,它不仅极大地丰富了教育资源,提高了交流的便捷性,还催生了多样化的教学模式。对于高职院校来说,加强计算机网络应用的建设不仅是顺应时代潮流的必然…

【K230 CanMV】图像识别-摄像头获取图像 Sensor 函数全解析

引言:随着图像处理技术的不断发展,摄像头在嵌入式系统中的应用越来越广泛,尤其是在智能监控、自动驾驶、机器人视觉等领域。K230作为一款高性能的嵌入式处理器,提供了强大的图像处理能力,支持多种类型的摄像头接入与图…

SQL优化与性能——数据库设计优化

数据库设计优化是提高数据库性能、确保数据一致性和支持业务增长的关键环节。无论是大型企业应用还是小型项目,合理的数据库设计都能够显著提升系统性能、减少冗余数据、优化查询响应时间,并降低维护成本。本章将深入探讨数据库设计中的几个关键技术要点…

用Python做数据分析环境搭建及工具使用(Jupyter)

目录 一、Anaconda下载、安装 二、Jupyter 打开 三、Jupyter 常用快捷键 3.1 创建控制台 3.2 命令行模式下的快捷键 3.3 运行模式下快捷键 3.4 代码模式和笔记模式 3.5 编写Python代码 一、Anaconda下载、安装 【最新最全】Anaconda安装python环境_anaconda配置python…

Jmeter测试工具的安装和使用,mac版本,jmeter版本5.2.1

Jmeter测试工具的安装和使用JSON格式请求 一、安装1、安装jdk包和设置java环境2、去官网下载Jmeter3、解压后,打开mac终端,进入apache-jmeter的bin文件开启jmeter 二、使用jmeter1、添加线程2、添加HTTP请求3、配置请求的协议、IP地址、端口号、请求方法…

基于springboot 的体质测试数据分析及可视化设计LWPPT

技术可行性:技术背景 本企业网站在Windows操作系统中进行开发,并且目前PC机的性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。 系统的开发环境和配置都是可以自行安装的&#x…

【初阶数据结构和算法】二叉树顺序结构---堆的定义与实现(附源码)

文章目录 一、堆的定义与结构二、堆的实现1.堆的初始化和销毁堆的初始化堆的销毁 2.向上调整算法和入堆向上调整算法入堆 3.向下调整算法和出堆顶数据向下调整算法出堆 4.堆的有效数据个数和判空堆的有效数据个数堆的判空 5.取堆顶数据 三、堆的源码 一、堆的定义与结构 本篇内…

黑马程序员Java笔记整理(day05)

1.面向对象编程 2.用法 3.对象是什么 4.对象在计算机中是啥 5.无参与有参构造器 小结: 6.this的作用 7.小结 8.封装 9.小结 10.实体类 11.小结 12.static 13.小结 14.static修饰方法 15.static应用前景 16.几个注意事项 17.java中可以直接用类的名字创建数组,如: M…

管理锻炼数据_创建类

● 这篇文章和大家一起学习创建类来管理我们的锻炼数据 ● 首先我们先创建这些类,然后讲锻炼数据中的数据写出来 class Workout {date new Date();constructor(coords, distance, duration) {this.coords coords;this.distance distance; //kmthis.duration du…

241127学习日志——[CSDIY] [InternStudio] 大模型训练营 [20]

CSDIY:这是一个非科班学生的努力之路,从今天开始这个系列会长期更新,(最好做到日更),我会慢慢把自己目前对CS的努力逐一上传,帮助那些和我一样有着梦想的玩家取得胜利!!&…

qt QAnimationDriver详解

1、概述 QAnimationDriver是Qt框架中提供的一个类,它主要用于自定义动画帧的时间控制和更新。通过继承和实现QAnimationDriver,开发者可以精确控制动画的时间步长和更新逻辑,从而实现丰富和灵活的动画效果。QAnimationDriver与QAbstractAnim…

更多开源创新 挑战OpenAI-o1的模型出现和AI个体模拟突破

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

CSP-J初赛不会备考咋办?

以下备考攻略仅供参考,如需资料请私信作者!求支持! 目录 一、编程语言基础 1.语法知识 -变量与数据类型 -运算符 -控制结构 -函数 2.标准库的使用 -输入输出流 -字符串处理 -容器类(可选) 二、算法与数据结构 1.基…

电路基础——相量法

相量法 为什么要使用相量表示? 电路方程是微分方程: 电路的运算(如KCL、KVL方程运算)会涉及到两个正弦量的相加: 如下图所示同频率的正弦量相加仍得到同频率的正弦量,因此只需确定初相位和有效值。 基于上…

第七课 Unity编辑器创建的资源优化_UI篇(UGUI)

上期我们学习了简单的Scene优化,接下来我们继续编辑器创建资源的UGUI优化 UI篇(UGUI) 优化UGUI应从哪些方面入手? 可以从CPU和GPU两方面考虑,CPU方面,避免触发或减少Canvas的Rebuild和Rebatch&#xff0c…

如何使用ST7789展现图片?[ESP--4]

本节我们继续ESP和ST 7789的话题,这节课我们来学学如何展示图片,话不多说,先上效果 好,教程开始~前情提要,要看懂这篇,建议搭配楼主的前两期文章 使用ESP32驱动LCD-ST7789屏幕[ESP–2] 加速你的LCD-ST7789屏幕&#xf…

代码随想录day02--链表

移除链表元素 题目 地址:https://leetcode.cn/problems/remove-linked-list-elements/description/ 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 思路是使用虚拟节点的…

electron-updater软件自动检测更新 +无服务器本地测试

大家好,我是小黄。 今天分享一下如何0基础实现electron自动检测更新功能。 一. 安装 electron-updater 实现自动更新 安装依赖 electron-updater npm install electron-updater 二. 修改package.josn "publish": {"provider": "generi…