基于Delphi7openGauss2.0开发社区信息管理系统-设计文档
疫情防控信息管理系统设计文档
目录
需求分析... 3
a.引言... 3
a. 1目的... 3
a. 2文档约定... 3
a. 3预期的读者和阅读建议... 3
a. 4产品的范围... 3
b. 综合描述... 4
b.1产品的前景... 4
b.2产品的功能... 4
b.3用户类和特征... 5
b.4运行环境... 5
b.5设计和实现上的限制... 5
b.6假设和依赖... 5
c.系统特性... 5
c.1 说明和优先级... 5
c.2功能需求... 6
d.其它非功能需求... 7
d.1性能需求... 7
d.2安全设施需求... 7
d.3安全性需求... 7
d.4软件质量标准属性... 7
d.5业务规则... 7
e.其它需求... 7
f.附录... 8
f.1结构化需求分析... 8
数据库设计... 11
a.数据字典设计... 11
b.查询语句、视图和储存过程... 13
程序部分设计... 15
a.管理端... 15
b.居民端... 21
完成情况说明... 24
a.提交材料... 24
b.对照评分标准的说明... 24
1.创建了八张表,有增删改查操作。(10)... 24
2.有多处界面级联操作。(0.5)... 25
3.有权限管理,管理端通过创建工作人员表来赋予不同的权限。(0.5)... 26
4.有视图和存储过程(0.5+0.5)... 26
5.前台Delphi开发(3)... 28
需求分析
a.引言
a. 1目的
a. 2文档约定
若无其他说明,本文档内的同一内容下的并列内容没有优先级先后关系。
本文档中出现的社区均为中华人民共和国的中国社区(行政划分),社区工作人员指居民委员成员,疫情指是指2019新型冠状病毒感染导致的肺炎引起的疫情,以中华人民共和国中央人民政府通告的为准。
a. 3预期的读者和阅读建议
预期的读者范围包括开发人员、项目经理、营销人员、用户、测试人员或文档的编写人员等,针对当前一版需求文档,建议用户阅读时不必关注其中的具体技术细节,着重关注使用说明书(在另一文档中提供)。
对于居民,软件可以帮助他们简化和社区沟通的流程,方便地上报个人信息;对于各级疫情防控单位/小组。,软件可以帮助他们简化统计居民信息的流程,方便地管理居民健康状况。
a. 4产品的范围
实现居民的扫码出入、健康上报、外来人员报备、核酸查询以及社区工作人员的管理投诉与建议、社区成员信息管理、进出管理、外来人员报备、健康状况管理、区域管理人员、区域分配、居民分配管理等功能。
b. 综合描述
b.1产品的前景
b.2产品的功能
实现居民的健康状况自查寻、健康打卡上报、问题反馈以及社区工作人员的管理投诉与建议、社区成员信息管理、健康上报信息管理、外来人员报备、健康状况管理、分区域管理等功能。
b.3用户类和特征
居民:社区的常住人口,该平台的主要使用者,是平台获取相关信息的主体。
工作人员:包含市级疫情防控小组以及中国社区的负责疫情防控信息管理的相关工作人员,也是该平台的使用者,主要对后台信息进行管理。
b.4运行环境
b.5设计和实现上的限制
- 该软件侧重于疫情防控相关功能,只适用于新冠疫情这个特殊的时期,没有进行额外设计满足疫情后的更多需求。
- 硬件限制,需要高性能服务器满足并发访问响应,需要大容量存储和备份保存居民信息。
- 使用opengauss作为数据库,对unidac和firedac等第三方数据库连接工具的PG驱动兼容性差,无法连接,因此只能使用ODBC来连接,需要用户正确安装驱动并配置数据源。
b.6假设和依赖
假设:用户更倾向于使用程序来完成疫情期间和社区进行的沟通和出入管理。社区倾向于使用计算机软件系统来取代先前的电话微信人工流程。
依赖:软件系统运营中所使用的服务器提供商能够保护用户的隐私安全。
c.系统特性
c.1 说明和优先级
1.1信息搜索 |
说明 |
方便工作人员查找信息 |
优先级 |
高 |
|
成本 |
在多个功能板块设置模糊查询功能 |
|
风险 |
低 |
|
1.2信息修改 |
说明 |
方便居民和管理员修改信息 |
优先级 |
高 |
|
成本 |
在多个功能板块设置修改信息功能 |
|
风险 |
低 |
|
1.3消息提醒 |
说明 |
管理员及时提醒居民上传健康情况 |
优先级 |
低 |
|
成本 |
设置消息提醒功能 |
|
风险 |
低 |
|
1.4登陆授权 |
说明 |
居民和工作人员登陆权限验证 |
优先级 |
高 |
|
成本 |
设置数据库校验 |
|
风险 |
中 |
|
1.5信息交互 |
说明 |
居民和管理员有信息交互行为 |
优先级 |
高 |
|
成本 |
居民端和管理员端通过数据库实现交互 |
|
风险 |
低 |
c.2功能需求
登录时,根据用户的输入用户名和密码验证用户身份成功则跳转到目标列表页面。
用户可以选择不同模块功能搜索、查看并修改居民信息,查看待完成任务以及对居民反馈做出回复。
d.其它非功能需求
d.1性能需求
在运行openeuler的3450MhzRyzen5800H的计算机上,当系统至少有50%的空闲资源时,对于1s内不超过10条的访问请求,90%以上必须在1000ms内完成
d.2安全设施需求
d.3安全性需求
1.重要数据加密。对一些重要的数据按一定的算法进行加密,如管理员口令,用户敏感个人信息等。
2.数据备份。后台定期进行数据的备份,以弥补数据的破坏和丢失。
d.4软件质量标准属性
2.控制不可更改项和必须输入项。保护重要数据,确保健康信息的登记是完整的
3.方便操作。从用户角度出发,方便使用产品,尽可能缩短使用时间和操作次数。例如,在健康信息登记时添加全选的选项。
d.5业务规则
只有最高级管理员可操作整个社区范围内的数据。分区域管理员只可更改自己区域内的居民信息。
e.其它需求
2.更多功能可通过数据库函数和储存过程以及视图等方法进行快速调整。
f.附录
f.1结构化需求分析
数据库设计
a.数据字典设计
根据需求,数据库应由以下八张表组成:社区表,小区表,小区社区连接表,居民表,健康信息打卡表,问题反馈表,工作人员表,健康码表。
字段名 |
字段含义 |
字段类型 |
字段长度 |
NULL |
备注 |
bh |
社区编号 |
varchar |
255 |
|
PK |
mc |
社区名称 |
varchar |
255 |
|
|
字段名 |
字段含义 |
字段类型 |
字段长度 |
NULL |
备注 |
bh |
小区编号 |
varchar |
255 |
|
PK |
mc |
小区名称 |
varchar |
255 |
|
|
字段名 |
字段含义 |
字段类型 |
字段长度 |
NULL |
备注 |
bh |
小区编号 |
varchar |
255 |
|
PK |
sqbh |
社区编号 |
varchar |
255 |
|
FK |
字段名 |
字段含义 |
字段类型 |
字段长度 |
NULL |
备注 |
sfz |
身份证号 |
varchar |
255 |
|
PK |
xm |
姓名 |
varchar |
255 |
|
|
add |
住址 |
varchar |
2000 |
|
|
xqbh |
小区编号 |
varchar |
255 |
|
FK |
tel |
电话号 |
varchar |
20 |
|
|
pwd |
密码 |
varchar |
255 |
√ |
字段名 |
字段含义 |
字段类型 |
字段长度 |
NULL |
备注 |
id |
自增编号 |
SERIAL |
PK |
||
sfz |
身份证号 |
varchar |
255 |
|
FK |
jkxx |
健康情况说明 |
varchar |
2000 |
|
|
rq |
日期 |
date |
2000 |
|
|
字段名 |
字段含义 |
字段类型 |
字段长度 |
NULL |
备注 |
id |
自增编号 |
SERIAL |
PK |
||
sfz |
身份证号 |
varchar |
255 |
|
FK |
wt |
问题内容 |
varchar |
2000 |
|
|
stat |
解决状态 |
numeric |
1 |
|
|
字段名 |
字段含义 |
字段类型 |
字段长度 |
NULL |
备注 |
sfz |
身份证号 |
varchar |
255 |
|
PK |
jkm |
健康码 |
varchar |
255 |
|
|
字段名 |
字段含义 |
字段类型 |
字段长度 |
NULL |
备注 |
zh |
账号 |
varchar |
255 |
|
PK |
mm |
密码 |
varchar |
255 |
|
|
sqbh |
社区编号 |
varchar |
255 |
|
FK |
关系R属于BCNF当且仅当:如果R中非平凡FD A1A2⋯An → B1B2⋯Bm 成立,则A1A2⋯An是关系R的超键。
- 对于社区表,只有一个FD:社区编号→社区名称,左端是键,符合。
- 对于小区表,只有一个FD:小区编号→小区名称,左端是键,符合。
- 对于小区社区连接表,只有一个FD:小区编号→社区编号,符合。
- 对于居民表,同理,所有的FD左端均为身份证,其他属性都非唯一或不能决定其他属性,不能决定其他属性,符合。
- 对于健康信息上报表和问题反馈表,所有的FD左侧均包含id(自增主键),符合
- 对于健康码表,只有一个FD:身份证→健康码,左端是键,符合。
- 对于工作人员表,所有的FD左端均包含主键账号,符合。
b.查询语句、视图和储存过程
select xq.mc from xq,sq where xq.sqbh=sq.bh and sq.mc='社区1' order by xq.bh ;
'select xq.mc from xq,sq order by bh where xq.sqbh=sq.bh and sq.mc='+ComboBox1.Text
select jm.xm AS 姓名,wtfk.wt AS 问题,jm.tel AS 电话,jm."add" AS 地址 FROM xq,jm,wtfk
create or replace procedure updateinfo(id text,nam text,zz text,dh text,sq1 text,xq1 text,jkm1 text)
UPDATE jm SET xm=nam,"add"=zz,tel=dh WHERE sfz=id;
UPDATE jkm SET jkm=jkm1 WHERE sfz=id;
FOR _record in SELECT DISTINCT xq.bh FROM xq,sq WHERE sq.mc=sq1 AND sq.bh=xq.sqbh AND xq.mc=xq1
UPDATE jm SET xqbh=_record.bh WHERE sfz=id;
//(测试)CALL updateinfo('1120200001','t','thome','12345678910','社区1','昊天家园','红码');
SELECT xqs.bh,xqs.mc,xs.sqbh from xs,xqs
CREATE OR REPLACE view allinfo as
SELECT * FROM allinfo WHERE sfz=;
create or replace procedure addinfo(id text,nam text,zz text,dh text,sq1 text,xq1 text,jkm1 text)
Insert into jm values(id,nam,zz,'1',dh,null);
INSERT INTO jkm values(id,jkm1);
FOR _record in SELECT DISTINCT xq.bh FROM xq,sq WHERE sq.mc=sq1 AND sq.bh=xq.sqbh AND xq.mc=xq1
UPDATE jm SET xqbh=_record.bh WHERE sfz=id;
select wt AS 问题内容,stat as 解决状态 from wtfk where sfz=
程序部分设计
a.管理端
procedure TForm2.Edit2Click(Sender: TObject);
设计主界面,接收登陆界面的社区范围值,显示在左上角,如果是超级管理员则生成右下角的编辑管理员账号按钮。中心部分为管理端的四个功能模块,点击进入功能页面。
设计居民信息管理界面,为方便查询在上方添加了模糊查询框,可以对居民信息进行搜索,只需填写部分即可。下方的表格和导航条可以对居民信息进行浏览
设计分区健康信息管理界面,目标提供先选择社区再级联搜索小区的功能,同时可以对健康码情况进行筛选。使用DbcomboBox完成改项功能。
具体细节:在选择社区前,小区栏是失效的,在选择社区栏后,小区栏根据选择的社区初始化。在选择小区前,对应的查询按钮是失效的,只有选择小区后查询按钮才生效。健康码同理,在选择后才可以进行查询。
为了简化操作,采用保存原始sql语句以及添加分区信息的sql语句,在应用查询时仅将新条件添加到初始的sql语句后面:
s:=' and xq.mc= '+QuotedStr('ComboBox2.Text');//向原来的查询结尾增加新条件。
添加清除筛选功能,实现原理为分别清空sql1和sql2再次执行拼装好的sql语句,下面是清除分区筛选的代码:
ADOQuery1.SQL.Add(sql0+sql1+sql2);
设计问题反馈界面,首先设计查询语句:和登陆时获取的社区编号拼接起来,得到:
其他具体细节和居民信息界面类似,使用checkbox来添加是否完成回复。
if checkbox1.Checked=true then
问题完成反馈后由居民端将问题状态修改为1即可。管理端无修改状态的权限。
设计居民健康上报界面,目标能够对居民进行按指定信息以及健康码状态查询,实现浏览居民的健康上报以及更改其健康码状态的功能。设计思路与前面的界面设计相似。界面如下:
设计修改居民信息界面,设计目标能够完成输入姓名或者身份证号来搜索居民再选中确定的居民更改其信息,配合其他模块共同使用,设计过程如下:
b.居民端
设计居民端登陆页面,大致思路与管理端相同,不同的是添加了密码初始化判断,用户在第一次登陆时可以填写任意密码成为密码。同时增加了注册界面,调用储存过程在所有关联的表中添加新居民。
设计用户注册界面,实现验证身份证未注册,遮罩禁止直接填写信息,小区社区级联选择的功能。
设计个人信息修改界面,实现用户更改自己的信息,小区社区级实现了联选择的功能。完成修改后有弹窗提示,信息框会保持在最新的信息以供核查,若更新失败则信息仍为原来的信息。
设计意见反馈界面,用户可以在此界面查看之前提交的反馈信息并修改问题的解决状态。在下方的提交区可以提交新的问题以及清空编辑区。
设置内容检查,在未填写编辑框时无法点击提交按钮。提交完成后刷新上方的表格。
设计健康上报界面,用户可以在此界面查看之前上报的健康信息,不可更改。在下方的提交区可以提交新的问题以及清空编辑区。
设置内容检查,在未填写编辑框时无法点击提交按钮。提交完成后刷新上方的表格。
完成情况说明
a.提交材料
- 设计文档,在根目录
- 使用说明书,在根目录,较为完整,共21页,每一个界面都包含了示例操作。
- 源代码,在代码文件夹
- 可执行文件,在程序文件夹
- 创建数据库以及数据的sql脚本,在根目录
- 数据库备份文件,在数据库备份文件夹,包含了详细的恢复数据库的指令和过程,已经在虚拟机测试可以完全按照该流程恢复到本作业的数据库。
b.对照评分标准的说明
1.创建了八张表,有增删改查操作。(10)
2.有多处界面级联操作。(0.5)
(1)管理端选择小区时需要先选择社区,选择社区后会刷新小区列表,选择完小区才可以点击查询。
(2)居民信息变更页面的选择在选择社区和小区时同样存在级联操作,在左侧选择居民身份证后右侧的编辑框会出现居民的信息。在变更社区之后小区栏会变成“—请选择--”,应用按键会失效,在选择小区后才可以提交。
3.有权限管理,管理端通过创建工作人员表来赋予不同的权限。(0.5)
字段名 |
字段含义 |
字段类型 |
字段长度 |
NULL |
备注 |
zh |
账号 |
varchar |
255 |
|
PK |
mm |
密码 |
varchar |
255 |
|
|
sqbh |
社区编号 |
varchar |
255 |
|
FK |
4.有视图和存储过程(0.5+0.5)
SELECT xqs.bh,xqs.mc,xs.sqbh from xs,xqs
create or replace procedure addinfo(id text,nam text,zz text,dh text,sq1 text,xq1 text,jkm1 text)
Insert into jm values(id,nam,zz,'1',dh,null);
INSERT INTO jkm values(id,jkm1);
FOR _record in SELECT DISTINCT xq.bh FROM xq,sq WHERE sq.mc=sq1 AND sq.bh=xq.sqbh AND xq.mc=xq1
UPDATE jm SET xqbh=_record.bh WHERE sfz=id;
create or replace procedure updateinfo(id text,nam text,zz text,dh text,sq1 text,xq1 text,jkm1 text)
UPDATE jm SET xm=nam,"add"=zz,tel=dh WHERE sfz=id;
UPDATE jkm SET jkm=jkm1 WHERE sfz=id;
FOR _record in SELECT DISTINCT xq.bh FROM xq,sq WHERE sq.mc=sq1 AND sq.bh=xq.sqbh AND xq.mc=xq1
UPDATE jm SET xqbh=_record.bh WHERE sfz=id;
5.前台Delphi开发(3)
基于Delphi7openGauss2.0开发社区信息管理系统-设计文档相关推荐
- 新闻管理系统源码java_基于SSM开发的新闻管理系统 附带文档 源码下载
功能概述 后端springMVC. MyBatis框架.前端使用bootstrap.angularJs ,前后端交互为纯Ajax(angularJs) + ui-router,编辑器为百度UEdito ...
- 医院门诊管理系统php文献,医院门诊信息管理系统Api文档
医院门诊信息管理系统Api文档 xinggevip • 2021 年 03 月 12 日 医院门诊信息管理系统Api文档 1.用户端 1.1注册 请求类型:post 接口名称:/api/patient ...
- 学生成绩管理系统-设计文档
第1章 概述 1.1 课题背景 由于每年读书的人越来越多,有关学生的各种信息量也成倍增长,各类学生的统计分析工作也越来越困难,面对如此繁杂的工作,为了能够为高校学生信息管理提供一种更加高效实用的管理手 ...
- 基于javaspringboot+vue的汽车租赁管理系统含文档
项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等.这里根据疫情当下,你 ...
- PYB Nano 开发板的完整设计文档
2019独角兽企业重金招聘Python工程师标准>>> 一直有网友在询问PYB Nano的设计文件,希望可以参考.今天将文档整理出来,放在github和oschina上,方便大家参考 ...
- python学生信息管理系统策划文档
文章目录 需求分析 系统设计 系统功能结构 系统业务流程 系统开发必备 系统开发环境 文件夹组织结构 主函数设计 功能概述 主函数业务流程 学生信息维护模块设计 概述 录入模块业务流程 删除模块业务流 ...
- 【迭代式开发】v1架构设计文档——大数据开发实战项目(三)
文章目录 前言 一.背景 二.名词解释 三.设计目标 3.1 实现功能 3.2 性能指标 Ⅰ.数据精确度 Ⅱ.时间特性 Ⅲ.适应性 四.系统环境 4.1 相关软件和硬件 4.2 数据规模预估 五.系统 ...
- 超好用的数据库设计文档生成工具
原创声明:本文为作者(幻好)原创,可用做学习参考转载,但需注明出处.禁止未经允许用于商业等途径,否则后果自负! 前言概述 随着开发场景的复杂度越来越高,存储数据的数据库表也越来越多并不断的更新.在开发 ...
- 基于JavaSwing开发学生信息管理系统(SQLServer数据库版本) 毕业设计 课程设计 大作业
基于JavaSwing开发学生信息管理系统(SQLServer数据库版本): (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse+Jdk+SQLServer数据库 运行 ...
最新文章
- rabbitMQ入门程序
- linux 代码获取当前路径,【linux】shell代码,获取当前路径,创建文件夹
- js实现日期转换方法
- Android 友盟推送开发
- SQL Server Pivot 隐藏group
- 【历史上的今天】5 月 1 日:AMD 成立;第一个 BASIC 程序跑通;世界上第一封垃圾邮件
- 对“鬼压床”现象的科学解释与防治
- 怎样在计算机中找小键盘,笔记本怎么关小键盘【方法步骤】
- 26岁零基础想转行做软件测试可行吗?多方面分析
- ILM(Index Lifecycle Management)
- 新手云服务器系统,新手云服务器系统
- 如何恢复格式化丢失的资料?
- 【jzoj4742】【单峰】
- 织梦网站如何设置404错误页面?
- idea,eclipse中注解使用的计算机用户名修改
- Scrapy是什么?Scrapy怎么用?Scrapy进阶使用[链接提取器、自动登录、图片(文件)下载器](基于scrapy2.0+编写) ๑乛◡乛๑ Scrapy框架使用方法
- ssh 修改超时时间
- elementUI使用卡槽二次封装table(亲测可用)
- maven 项目 springMVC实现文件图片的上传下载功能详解(源码已提供,小白必看)
- 谁说app的视频抓取不了的?用Python爬取整个app视频
热门文章
- 已知抛物线与直线相交两点和抛物线顶点,求抛物线和直线所围成的面积?
- 计算机毕业设计SSM仿咸鱼二手物品交易系统【附源码数据库】
- 山地自行车系统的组成部分及论如何自己组装一台山地车
- 刚子扯谈:神马网络营销
- ETCgame移动端上线,预测游戏世界杯预测触手可及
- Cannot invoke an object which is possibly ‘undefined‘.Vetur(2722)
- 今天终于知道了什么是X-window中字体hinting的含义了!
- python 学习day7
- 怎么开通代付通道接口?
- Java的自学之旅10