第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 新增时间 是