第4章 系统设计
4.1 系统设计的原则
在系统设计过程中,也需要遵循相应的设计原则,这些设计原则可以帮助设计者在短时间内设计出符合设计规范的设计方案。设计原则主要有可靠性,安全性,可定制化,可扩展性,可维护性,可升级性以及客户体验等原则。下面就对这些原则进行简要阐述。
可靠性:一个软件是否可靠决定了其是否被用户使用,设计不可靠的软件,用户很容易就遗弃;
安全性:程序软件承担了信息的保存与管理等事务,安全性不足的软件会导致使用者承担巨大的损失;所以系统安全也是需要考虑进入的;
可定制化:市场环境从来都不是一直固定不变,面对客户群体的改变,以及使用环境的改变,市场需求的改变等因素,程序软件也要易于调整以适应各种变化;
可扩展性:程序软件在运行使用期间,也需要及时引进当下的新技术来进行系统优化,主要就是在系统功能层面,系统性能层面上进行相应的扩展,只有这样才能让系统在实际生活中继续占有市场;
可维护性:程序软件的维护需要一定量的资金,不管是排除现有程序错误,还是变更软件的现有需求,都需要在软件技术上投入一定资金,所以易于维护的软件程序就可以降低技术层面的资金消耗;
可升级性:程序软件的投入使用,会面临用户数量增多的情况,用户对软件的使用率也会提升,所以系统面临这种情况,仍然需要通过升级保持性能的合理,这样才能够适应市场;
客户体验:设计出来的程序软件在界面上不能够太复杂,要遵循界面设计的原理设计出简单,方便操作的功能操作界面,让用户易于接受软件,并乐于使用软件提供的功能。
4.2 系统结构设计
在系统结构设计上,经综合考虑还是选择比C/S更省资金的B/S结构模式,现如今浏览器已经实现了普及,并在技术上逐渐完善和成熟,它在节约软件开发成本的基础上,还能实现原本用专业软件操作才能实现的强大功能。总之,B/S结构是当下全新的,认可度高的系统构造技术。系统结构设计图通过绘制,效果展示如下:
图4-1 系统结构设计图
4.3功能结构设计
在管理员功能模块确定下来的基础上,对管理员各个功能进行设计,确定管理员功能的详细模块。绘制的管理员功能结构见下图。
lunwen
图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 简历投递实体属性图
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 |
gongsi_name |
String |
公司名称 |
是 |
3 |
hanye_types |
Integer |
所在行业 |
是 |
4 |
gongsi_phone |
String |
联系方式 |
是 |
5 |
gongsi_email |
String |
邮箱 |
是 |
6 |
gongsi_photo |
String |
营业执照展示 |
是 |
7 |
gongsi_content |
String |
公司简介 |
是 |
8 |
gongsi_delete |
Integer |
逻辑删除 |
是 |
9 |
create_time |
Date |
创建时间 |
是 |
表4.3简历表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
yonghu_id |
Integer |
用户 |
是 |
3 |
jianli_uuid_number |
String |
简历唯一编号 |
是 |
4 |
jianli_name |
String |
简历名称 |
是 |
5 |
jianli_xingming |
String |
姓名 |
是 |
6 |
jianli_sex_types |
Integer |
性别 |
是 |
7 |
jianli_phone |
String |
手机号 |
是 |
8 |
jianli_photo |
String |
照片 |
是 |
9 |
yuanxi_types |
Integer |
院系 |
是 |
10 |
jiaoyu_text |
String |
教育经历 |
是 |
11 |
shixi_text |
String |
实习或工作经历 |
是 |
12 |
geren_text |
String |
个人介绍 |
是 |
13 |
create_time |
Date |
创建时间 |
是 |
表4.4简历投递表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
jianli_id |
Integer |
简历 |
是 |
3 |
zhaopin_id |
Integer |
招聘 |
是 |
4 |
insert_time |
Date |
投递时间 |
是 |
5 |
create_time |
Date |
创建时间 |
是 |
表4.5学生就业信息表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
yonghu_id |
Integer |
用户 |
是 |
3 |
xueshengjiuye_uuid_number |
String |
就业编号 |
是 |
4 |
xueshengjiuye_address |
String |
就业地点 |
是 |
5 |
xueshengjiuye_gongsi |
String |
就业公司 |
是 |
6 |
xueshengjiuye_zhiwei |
String |
就业职位 |
是 |
7 |
xueshengjiuye_xinzi |
BigDecimal |
就业薪资/月 |
是 |
8 |
jiuye_time |
Date |
就业时间 |
是 |
9 |
xueshengjiuye_content |
String |
就业备注 |
是 |
10 |
insert_time |
Date |
记录时间 |
是 |
11 |
create_time |
Date |
创建时间 |
是 |
表4.6邀请面试表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
jianli_id |
Integer |
简历 |
是 |
3 |
zhaopin_id |
Integer |
招聘 |
是 |
4 |
mianshi_time |
Date |
面试时间 |
是 |
5 |
mianshi_address |
String |
面试地点 |
是 |
6 |
mianshi_text |
String |
面试需知 |
是 |
7 |
insert_time |
Date |
邀请时间 |
是 |
8 |
create_time |
Date |
创建时间 |
是 |
表4.7用户表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
yonghu_name |
String |
用户姓名 |
是 |
3 |
yonghu_phone |
String |
用户手机号 |
是 |
4 |
yonghu_id_number |
String |
用户身份证号 |
是 |
5 |
yonghu_photo |
String |
用户头像 |
是 |
6 |
jiuye_types |
Integer |
是否就业 |
是 |
7 |
yonghu_email |
String |
电子邮箱 |
是 |
8 |
create_time |
Date |
创建时间 |
是 |
表4.8招聘信息表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
gongsi_id |
Integer |
公司 |
是 |
3 |
zhaopin_name |
String |
招聘信息名称 |
是 |
4 |
zhaopin_photo |
String |
招聘信息照片 |
是 |
5 |
zhaopin_daiyu |
String |
薪资待遇 |
是 |
6 |
zhaopin_address |
String |
上班地点 |
是 |
7 |
lianxiren_name |
String |
联系人 |
是 |
8 |
zhaopin_phone |
String |
招聘电话 |
是 |
9 |
zhaopin_types |
Integer |
招聘岗位 |
是 |
10 |
zhaopin_renshu_number |
Integer |
招聘人数 |
是 |
11 |
shangxia_types |
Integer |
是否上架 |
是 |
12 |
zhaopin_content |
String |
招聘信息详情 |
是 |
13 |
create_time |
Date |
创建时间 |
是 |
表4.9管理员表
序号 |
列名 |
数据类型 |
说明 |
允许空 |
---|---|---|---|---|
1 |
Id |
Int |
id |
否 |
2 |
username |
String |
用户名 |
是 |
3 |
password |
String |
密码 |
是 |
4 |
role |
String |
角色 |
是 |
5 |
addtime |
Date |
新增时间 |
是 |
5 系统实现
系统实现这个章节的内容主要还是展示系统的功能界面设计效果,在实现系统基本功能,比如修改,比如添加,比如删除等管理功能的同时,也显示出系统各个功能的界面实现效果,该部分内容一方面与前面提到的系统分析,系统设计的内容相呼应,另一方面也是一个实际成果的展示。
5.1管理员功能实现
5.1.1 学生就业信息管理
此页面让管理员管理学生就业信息的数据,学生就业信息管理页面见下图。此页面主要实现学生就业信息的增加、修改、删除、查看的功能。
图5-1 学生就业信息管理页面
5.1.2 招聘信息管理
招聘信息管理页面提供的功能操作有:新增招聘,修改招聘,删除招聘操作。下图就是招聘信息管理页面。
图5.3 招聘信息管理页面
5.1.3招聘岗位类型管理
招聘岗位类型管理页面显示所有招聘岗位类型,在此页面既可以让管理员添加新的招聘信息类型,也能对已有的招聘岗位类型信息执行编辑更新,失效的招聘岗位类型信息也能让管理员快速删除。下图就是招聘岗位类型管理页面。
图5.4 招聘岗位类型列表页面