第4章 系统设计
市面上设计比较好的系统都有一个共同特征,就是主题鲜明突出。通过对页面简洁清晰的布局,让页面的内容,包括文字语言,或者视频图片等元素可以清晰表达出系统的主题。让来访用户无需花费过多精力和时间找寻需要的内容。
4.1界面设计原则
一般来说,大部分用户使用系统,有些是想从系统中获取需要的信息,有些则是使用系统提供的服务。所以,为了改善用户体验,提高系统的使用率,在对系统界面设计时,需要按照下面的原则进行。
第一点,对用户进行分析,了解用户使用系统的目的,以及使用系统的方式,考虑大部分用户的阅读习惯,设计Z字形或F型结构可以方便用户获取信息。
第二点:设计有效的导航,这个包括每个页面上都有导航条的显示,有时也可以在页面的底部设计导航条,当用户进入具体页面时,要设计相应的位置提示,在页面中比较特殊的位置,需要设计返回链接,可以返回上个页面,也可以返回首页等。
第三点:对整个系统要运用统一的设计方案,包括色彩方案的一致性,页面模板的相似性等,对相同操作和专业术语的描述在整个系统中也应该保持一致。
第四点:设计的界面要保证传达的内容清晰准确。要避免在同一个页面设计非常多的内容,另外可以准确对系统内容进行分类,把页面中用户视觉集中的位置,用来显示重要信息。
作为初学者,并没有那么多的设计经验,但是可以运用上面提到的界面设计原则设计出比较好的系统,可以让用户产生良好的使用体验。
4.2功能结构设计
为了让系统的编码可以顺利进行,特意对本系统功能进行细分设计,设计的系统功能结构见下图。
图4.1 系统功能结构图
4.3数据库设计
一般来说,对用户进行调查,了解其需求,主要还是完成功能上的分析设计,殊不知,设计功能时,也要展示对数据库的设计。数据库服务于程序,它可以按照设定的规则对程序的数据进行保存,因此,也可以说数据库就是程序相关数据的集合。为了保证程序的高质量,数据库提供的数据存储服务也需要快速响应,同时数据信息也要安全合法可靠,所以设计一个数据库这样的任务也需要高度重视,并花时间和精力去努力完成。毕竟这影响到后期程序的开发和使用。试想而知,假设设计一个不好的数据库,遇到的问题将会有:第一,面对信息处理,会有着繁琐的业务逻辑,延长事务处理时间。第二:程序编码期间,将会产生更多的代码去完成数据处理的功能,产生大量的数据冗余,而且也不方便注释代码,还会占用更多的存储空间。综上所述,设计出合理的数据库是多么的重要。
(1)下图是物资调配实体和其具备的属性。
物资调配实体属性图
(2)下图是自愿者实体和其具备的属性。
自愿者实体属性图
(3)下图是公告信息实体和其具备的属性。
公告信息实体属性图
(4)下图是采购员实体和其具备的属性。
采购员实体属性图
(5)下图是物资采购实体和其具备的属性。
物资采购实体属性图
(6)下图是物资捐赠实体和其具备的属性。
物资捐赠实体属性图
(7)下图是志愿者调派实体和其具备的属性。
志愿者调派实体属性图
(8)下图是物资领用归还实体和其具备的属性。
物资领用归还实体属性图
(9)下图是物资派发实体和其具备的属性。
物资派发实体属性图
(10)下图是小区管理员实体和其具备的属性。
小区管理员实体属性图
(11)下图是物资实体和其具备的属性。
物资实体属性图
(12)下图是需求收集实体和其具备的属性。
需求收集实体属性图
4.3.2 数据库物理设计
作为程序后台的支持,本数据库也需要设计数据存储的结构。而数据存储结构的设计就包括了数据表结构的设计和创建。数据表结构包括了字段,数据类型,还有字段的取值范围等信息。而E-R模型中的实体就是一张表,实体的特征就可以作为该表中的字段,根据本程序信息存储要求,设计每个字段需要的类型,还有该字段的取值范围等。每当设计完成一张数据表,就需要及时保存在数据库里面,并对该设计的数据表准确命名,要求设置的数据表的名称尽量不要是中文,而且要方便记忆。因为在程序编码阶段,通过SQL语句可以把程序里面的数据写入在各个数据表里面,而这个环节需要使用到数据表的名称。如果数据表名称是中文的话,可能会乱码并影响程序运行。下面就以表格形式展示设计的结果。
表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 |
wuzi_id |
Integer |
物资 |
是 |
3 |
xiaoquguanli_id |
Integer |
小区管理员 |
是 |
4 |
lingyongguihuan_types |
Integer |
操作类型 |
是 |
5 |
lingyongguihuan_number |
Integer |
操作数量 |
是 |
6 |
lingyongguihuan_content |
String |
备注 |
是 |
7 |
insert_time |
Date |
操作时间 |
是 |
8 |
create_time |
Date |
创建时间 |
是 |
表4.3公告信息表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
news_name |
String |
公告标题 |
是 |
3 |
news_types |
Integer |
物资调配 |
是 |
4 |
news_photo |
String |
公告图片 |
是 |
5 |
insert_time |
Date |
添加时间 |
是 |
6 |
news_content |
String |
公告详情 |
是 |
7 |
create_time |
Date |
创建时间 |
是 |
表4.4物资表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
wuzi_uuid_number |
String |
物资编号 |
是 |
3 |
wuzi_name |
String |
物资名称 |
是 |
4 |
wuzi_types |
Integer |
物资类型 |
是 |
5 |
wuzi_kucun_number |
Integer |
物资库存 |
是 |
6 |
wuzi_content |
String |
物资详情 |
是 |
7 |
wuzi_delete |
Integer |
逻辑删除 |
是 |
8 |
insert_time |
Date |
录入时间 |
是 |
9 |
create_time |
Date |
创建时间 |
是 |
表4.5物资采购表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
wuzi_id |
Integer |
物资 |
是 |
3 |
yonghu_id |
Integer |
采购员 |
是 |
4 |
wuzicaigou_number |
Integer |
采购数量 |
是 |
5 |
wuzicaigou_time |
Date |
登记时间 |
是 |
6 |
wuzicaigou_text |
String |
备注 |
是 |
7 |
wuzicaigou_yesno_types |
Integer |
采购审核 |
是 |
8 |
wuzicaigou_yesno_text |
String |
审核结果 |
是 |
9 |
insert_time |
Date |
添加时间 |
是 |
10 |
create_time |
Date |
创建时间 |
是 |
表4.6物资调配表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
wuzi_id |
Integer |
物资 |
是 |
3 |
xiaoquguanli_id |
Integer |
小区管理员 |
是 |
4 |
wuzidiaopei_number |
Integer |
调用数量 |
是 |
5 |
wuzidiaopei_content |
String |
备注 |
是 |
6 |
insert_time |
Date |
调配时间 |
是 |
7 |
create_time |
Date |
创建时间 |
是 |
表4.7物资捐赠表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
wuzi_id |
Integer |
物资 |
是 |
3 |
xiaoquguanli_id |
Integer |
小区管理员 |
是 |
4 |
wuzijuanzeng_name |
String |
捐赠人 |
是 |
5 |
wuzijuanzeng_phone |
String |
联系方式 |
是 |
6 |
wuzijuanzeng_address |
String |
捐赠人住址 |
是 |
7 |
wuzijuanzeng_number |
Integer |
捐赠数量 |
是 |
8 |
wuzijuanzeng_content |
String |
备注 |
是 |
9 |
insert_time |
Date |
操作时间 |
是 |
10 |
create_time |
Date |
创建时间 |
是 |
表4.8物资派发表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
zhiyaunzhe_id |
Integer |
自愿者 |
是 |
3 |
wuzi_id |
Integer |
物资 |
是 |
4 |
wuzipaifa_name |
String |
派发居民 |
是 |
5 |
wuzipaifa_phone |
String |
联系方式 |
是 |
6 |
wuzipaifa_address |
String |
派发住址 |
是 |
7 |
wuzipaifa_number |
Integer |
派发数量 |
是 |
8 |
wuzipaifa_content |
String |
备注 |
是 |
9 |
insert_time |
Date |
添加时间 |
是 |
10 |
create_time |
Date |
创建时间 |
是 |
表4.9小区管理员表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
xiaoquguanli_name |
String |
小区管理员姓名 |
是 |
3 |
xiaoquguanli_photo |
String |
头像 |
是 |
4 |
xiaoquguanli_phone |
String |
联系方式 |
是 |
5 |
xiaoquguanli_id_number |
String |
身份证号 |
是 |
6 |
xiaoquguanli_email |
String |
邮箱 |
是 |
7 |
xiaoquguanli_delete |
Integer |
假删 |
是 |
8 |
create_time |
Date |
创建时间 |
是 |
表4.10需求收集表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
zhiyaunzhe_id |
Integer |
自愿者 |
是 |
3 |
xuqiutongji_name |
String |
居民 |
是 |
4 |
xuqiutongji_phone |
String |
联系方式 |
是 |
5 |
xuqiutongji_address |
String |
住址 |
是 |
6 |
xuqiutongji_content |
String |
需求详情 |
是 |
7 |
insert_time |
Date |
添加时间 |
是 |
8 |
create_time |
Date |
创建时间 |
是 |
表4.11采购员表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
yonghu_name |
String |
采购员姓名 |
是 |
3 |
yonghu_photo |
String |
头像 |
是 |
4 |
yonghu_phone |
String |
采购员手机号 |
是 |
5 |
yonghu_id_number |
String |
采购员身份证号 |
是 |
6 |
yonghu_email |
String |
邮箱 |
是 |
7 |
yonghu_danwei |
String |
单位 |
是 |
8 |
yonghu_delete |
Integer |
假删 |
是 |
9 |
create_time |
Date |
创建时间 |
是 |
表4.12自愿者表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
zhiyaunzhe_name |
String |
自愿者姓名 |
是 |
3 |
zhiyaunzhe_photo |
String |
头像 |
是 |
4 |
zhiyaunzhe_phone |
String |
自愿者联系方式 |
是 |
5 |
zhiyaunzhe_id_number |
String |
自愿者身份证号 |
是 |
6 |
zhiyaunzhe_email |
String |
邮箱 |
是 |
7 |
zhiyaunzhe_address |
String |
住址 |
是 |
8 |
sex_types |
Integer |
性别 |
是 |
9 |
zhiyaunzhe_content |
String |
自愿者服务记录 |
是 |
10 |
zhiyaunzhe_delete |
Integer |
假删 |
是 |
11 |
create_time |
Date |
创建时间 |
是 |
表4.13志愿者调派表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
zhiyuanzhepaiqian_name |
String |
派遣标题 |
是 |
3 |
zhiyuanzhepaiqian_types |
Integer |
派遣类型 |
是 |
4 |
zhiyuanzhepaiqian_photo |
String |
公告图片 |
是 |
5 |
zhiyuanzhepaiqian_time |
Date |
派遣时间 |
是 |
6 |
zhiyaunzhe_id |
Integer |
自愿者 |
是 |
7 |
zhiyuanzhepaiqian_content |
String |
派遣详情 |
是 |
8 |
insert_time |
Date |
添加时间 |
是 |
9 |
create_time |
Date |
创建时间 |
是 |
表4.14管理员表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
username |
String |
采购员名 |
是 |
3 |
password |
String |
密码 |
是 |
4 |
role |
String |
角色 |
是 |
5 |
addtime |
Date |
新增时间 |
是 |
第5章 系统实现
这个环节需要使用前面的设计方案,包括对系统模块的设计,还有对程序后台的数据支持的数据库的设计等。不过这部分内容还是强调系统编码人员的开发能力,要把前面设计的内容通过编码的形式以一个完整的,可以运行的系统呈现出来。
功能模块的实现
5.1小区管理员管理
如图5.1显示的就是小区管理员管理页面,此页面提供给管理员的功能有:小区管理员的查询管理,可以删除小区管理员、修改小区管理员、新增小区管理员,还进行了对用户名称的模糊查询的条件
图5.1 小区管理员管理页面
5.2 物资派发管理
如图5.2显示的就是物资派发管理页面,此页面提供给管理员的功能有:查看已发布的物资派发数据,修改物资派发,物资派发作废,即可删除,还进行了对物资派发名称的模糊查询 物资派发信息的类型查询等等一些条件。
图5.2 物资派发管理页面
5.3物资调配管理
如图5.3显示的就是物资调配管理页面,此页面提供给管理员的功能有:根据物资调配进行条件查询,还可以对物资调配进行新增、修改、查询操作等等。
图5.3 物资调配管理页面
5.4公告信息管理
如图5.4显示的就是公告信息管理页面,此页面提供给管理员的功能有:根据公告信息进行新增、修改、查询操作等等。
图5.4 公告信息管理页面