基于Java的人力资源简历管理系统设计
方 洁
(湖北工业大学商贸学院,湖北 武汉430069)
摘 要:开发一个易于操作、界面友好的人力资源简历管理系统。利用自顶向下、逐层分解的方法设计了基于Java
的人力资源简历管理系统,该系统共划分为5个模块,分别是需求管理模块、数据统计模块、系统管理模块、简历库管
理模块、渠道模块。数据库设计是整个设计过程的重点,通过对数据库进行分析和设计,实现了名为HRMS的数据库
设计,为进一步完成该系统设计奠定了基础。
关键词:Spring;JPA;数据库;HRMS;SQL Server 2005
DOI:10.11907/rjdk.143452
中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2014)011-0082-03
作者简介:方洁(1980-),女,湖北武汉人,硕士,湖北工业大学商贸学院讲师,研究方向为计算机技术。
0 引言
Spring是当今最主流的服务层框架,可实现应用程序
的n层结构,最大程度地降低各模块之间的耦合度,提高
应用程序的开发效率和可维护性。选用Struts2作为系统
的表示层框架,在数据持久层方面则使用 Hibernate3.2,
采用JPA对 Hibernate进行配置。此外,表示层不仅使用
Struts和JSP[1],还用到DWR。
1 系统分析
系统采用当前流行的SSJ整合框架编写。Struts2.0
是以 MVC模式为基础,控制反转为核心的Java Web[2]应
用框架,使用它不仅可以实现 Web应用程序的分层,还可
以大大提高用户请求的处理效率,从而降低表示层开发工
作量;Spring2.5以 MVC模式为基础,依赖注入为核心的
Java应用框架,它利用Java的反射机制,将系统各层无缝
整合在一起,实现系统各模块和各层次的解耦,提高了系
统的可维护性和可移植性;JPA是Sun[3]公司提出的一个
ORM标准,由于市场上主流的 ORM 框架没有统一的标
准,各公司都按自己的标准编写ORM的配置方式,这样,
在开发应用软件时,用户要学习各种ORM框架的配置方
式,并且当现有 ORM 框架不能满足用户需求时,切换
ORM框架会付出相当大的代价。这时JPA标准应运而
生,只要ORM框架的生产商遵循该标准,用户软件就可
以很小的代价切换ORM框架,不使用学习新框架复杂的
配置方式即可将它整合到系统中。系统JPA的ORM 框
架将使用 Hibernate3.2实现,它具有强大的事务处理能
力、数据缓存能力和并发处理能力,可以提高持久层的运
行效率和开发效率。
在表示层,系统将使用JSP页面技术和 ExtJs2.2、
DWR3这两大 AJAX技术。JSP与Java Servlet一样,在
服务器端执行,通常返回该客户端的就是一个 HTML文
本,因此客户端只要有浏览器就能进行浏览。ExtJs2.2是
当今主流的AJAX技术之一,它可以提供如同桌面应用程
序的外观,能大大提高用户体验,为用户提供一个美观、方
便的操作界面。此外,系统将使用SQL Server 2005[4]作
为应用程序的数据库,它具有良好的并发处理和事务处理
能力[5],并且具有较高的运行效率和稳定性。
2 系统设计
系统设计是指将系统分析阶段所提出的反映信息需
求的系统逻辑方案转换成可以实施的基于计算机与通信
系统的物理(技术)方案,为下一阶段系统实施提供必要的
技术资料,应符合系统性、灵活可靠性、经济性等要求。
2.1 系统模块总体设计
结构化设计技术的核心是模块分解技术,系统功能结
构图的主要元素就是模块。其设计思想是,采用自顶向
下、逐层分解的方法,先给出总的模块功能,再逐层分解,
使其分为多个大小合适、功能明确、具有一定独立性且容
易实现的模块,从而把一个复杂的系统设计转变成为多个
简单模块的设计。系统采用模块结构化设计方法,按层次
划分各个模块,每个模块完成一个功能,且每个模块具有
单入口单出口。
系统一共分为5个模块,每个模块之间在表面上看是
相互独立的,但在对数据库的访问上是紧密相连的,各模
块访问的是同一个数据库,只是访问的表不同。每个模块
的功能都是通过调研搜集资料进行编排制作而实现的。
依据上述分析,可将系统模块设置如下:系统管理模
块、简历库管理模块、渠道模块、需求管理模块、数据统计
模块。各功能模块的具体功能如下:
(1)系统管理功能。系统管理员增加、删除该应用系
统的角色数据:角色编号、角色名称、角色描述。
(2)简历库管理功能。①摘抄简历。招聘助理从用户
简历文件中摘抄相关的信息到简历中心,并将用户的简
历文件作为附件保存到服务器;②简历初选。招聘助理或
项目助理将简历中心中的简历根据要求选择合适的简历
并分配到各个部门;③简历复选;④预约面试管理,项目助
理预约面试并记录预约面试结果及原因,不管预约面试是
否成功,都应该添加一个预约面试记录,一个面试者可以
有很多预约面试记录;⑤面试评价,面试人记录本次面试
的结果以及评价。
(3)渠道管理功能。招聘经理、招聘专员增加简历的
来源渠道信息,如:渠道编号、渠道名称、渠道类型、联系
人、联系方式、负责人。系统功能如表1所示。
(4)需求管理功能。项目经理、项目助理可增加一个
新的岗位。
(5)数据统计功能。系统管理员、招聘经理可增加有
需求的项目、项目名、部门编号、项目经理、项目助理、联系
人、联系电话、项目描述。
表1 系统功能
模块 功能类别 子功能
需求管理 需求管理 岗位、项目、部门(添加、删除、修改)
数据统计 统计数据
渠道简历数量(添加、删除、修改),渠道简
历状态
系统管理 权限管理
角色维护(添加、删除、修改、权限描述),用
户管理(添加、删除、修改、查看用户信息)
简历库管理 摘抄简历
获得文本文件简历,添加简历记录,删除、
修改简历
简历初选
初选简历到部门、查看本部门简历信息、
查看其它部门的简历信息、修改初选状态
简历复选
锁定简历、复选简历、释放简历、查看本项
目简历信息
预约面试管理
预约面试安排、修改预约面试信息、删除
预约面试安排、查看预约面试安排
面试评价
录入面试评价、查看面试结果、查看某简
历的面试评价、修改面试评价、简历整理
渠道管理 渠道管理
渠道管理(添加、删除、修改),渠道信息查
询
渠道类型管理 渠道类型管理(添加、删除、修改)
2.2 数据库设计
数据库设计(Database Design)是指对于一个给定的
应用环境,构造最优的数据库模式,建立数据库及其应用
系统,使之能够有效地存储数据,满足各种用户的应用需
求(信息要求和处理要求)。在数据库领域内,常常把使用
数据库的各类系统统称为数据库应用系统[2]。
2.2.1 数据库设计概述
数据库设计是建立数据库及其应用系统的技术,是信
息系统开发和建设的核心技术。由于数据库应用系统的
复杂性,为了支持相关程序运行,数据库设计就变得异常
复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复
探寻,逐步求精”的过程,也即规划和结构化数据库中的数
据对象以及这些数据对象之间关系的过程。
2.2.2 数据分析
数据分析的过程与数据库的物理结构和逻辑结构密
切相关,应用程序所用的信息需要经过确定、编制、组织和
筛选等几个过程。它以一种能够分析和分类的方式来搜
集用户的各种信息,这使得某一模型能够直接转化为数据
库结构。本设计使用信息建模技术,该技术是通过实体、
关系和属性这3种基本对象来定义信息。用户必须先确
定单个实体和它们相关的属性,再确定实体和关系的性
质,为每个对象定义一个完整的与商业相关的描述以及其
单独使用的要求。
为实体确定相关属性的过程中,也需要确定它的主键
和索引,并确定在每个实体中怎样组织这些属性,确定属
性的数据类型和其是否为空值。在高层次的描述过程中,
还可以确定扩展属性的信息,包括编辑风格、长度、格式、
初始值和校验规则。单独实体的属性被组织起来,用户就
能够开始以某种组织方式给实体分类。用户必须通过关
系为实体分组的方式确定分类模式,也就是抽象化的初始
层,或者说是通过隐藏模糊的信息来提高对分析的理解。
通过把数据分类成组,产生相关分组的不同类型,从而更
易于观察和分析。
2.2.3 数据库详细设计
在设计数据库时,应考虑以下事项:①数据库的用途
及该用途对设计有哪些影响,应创建符合用途的数据库计
划;②数据库要满足规范化规则,防止在数据库设计过程
中出现错误;③加强对数据完整性的保护;④要满足数据
库和用户权限的安全性要求;⑤应注重应用程序的性能需
求。将人力资源简历管理系统数据库命名为:HRMS数
据库,存储所有的数据信息及其存储过程。
HRMS数据库中部分信息表如表2—表10所示。
表2 role角色表
字段 名称 类型 描述
roleId 角色id int
roleName 角色姓名 Varchar
超级管理员、项目经理、项目助
理、招聘助理、招聘经理
roleMemo 角色描述 Varchar
拥有最高管理权限、部分管理权
限
表3 users用户表
字段 名称 类型 描述
userId 用户id int
userName 用户名 varchar
userPass 用户密码 varchar
realName 真实姓名 varchar
roleId 角色id int 关联角色表
depId 部门id int 关联部门表
proId 项目编号 int 所属项目,关联项目表
·38·第11期 方 洁:基于Java的人力资源简历管理系统设计
表4 popedom权限表
字段 名称 类型 描述
popId 权限id int
popMemo 权限描述 varchar
uri 权限路径 varchar 相关访问路径
表5 role_pop中间表
字段 名称 类型 描述
userId 用户id int
userName 用户名 varchar
表6 dep部门表
字段 名称 类型 描述
depId 部门id int
depName 部门名称 varchar
depMemo 部门描述 varchar 对于部门的文字描述
depMan 部门经理 varchar
表7 pro项目表
字段 名称 类型 描述
proId 项目编号 int
proName 项目名称 varchar
depId 部门id int 关联部门表
proMan 项目经理 varchar
proAss 项目助理 varchar
contact 联系人 varchar
telphone 联系电话 varchar
staDate 开始时间 datetime
endDate 结束时间 datetime
proMemo 项目描述 varchar
表8 need需求表
字段 名称 类型 描述
needId 需求id int
depId 部门id int 与部门表depId外键关联关系
depMan 部门经理 varchar
customer 客户公司 varchar 华为IBM 微软 甲骨文 ...
needName
需求名称
(岗位) varchar
suitRes 合适简历 int
Java工程师c++工程师 项目组
长...
durInter 面试中 int 当前时间在需求结束时间之前
pass 通过面试 int
通过面试的人,根据评价记录中
面试成绩是否合格
needNO 需要人数 int 人数自行插入
staDate 起始时间 datetime 需求起始时间
endDate 结束时间 datetime 需求结束时间
通过设置这些表之间的关系,人力资源简历管理系统
的数据库设计工作得以完成。
3 结语
在互联网技术高度发展的今天,建立人力资源管理网
站对于企业树立品牌形象具有重要意义。数据库技术是
信息系统开发和网站建设的核心,由于数据库应用系统的
复杂性,为了支持相关程序运行,数据库设计就不可能一
蹴而就,它是一种"反复探寻,逐步求精"的过程。基于Ja-
va的人力资源简历管理系统设计还有待进一步完善,重
点在于数据库的优化,一方面尽量地降低冗余度,减少存
储空间的占用,降低数据一致性问题发生的可能性,另一
方面还要考虑适当的冗余,以提高运行速度并降低开发难
度。
表9 resume简历表
字段 名称 类型 描述
resId 简历id int
name 姓名 varchar
sex 性别 varchar
age 年龄 int
language 语言水平 varchar
edu 学历 varchar
birth 出生年月 datetime
graSchool 毕业院校 varchar
graDate 毕业时间 datetime
skill 技能 varchar
major 专业 varchar
isWork
是否有
工作经验
varchar
postDate 投递时间 datetime 简历投递时间
receiveDate 接收时间 datetime 公司录入简历时间
cTypeId 渠道来源 int
和channel表cTpyeId外键关联
关系
textMemo 自我介绍 varchar
needId
获得所有的岗位信息,与need表
关联
tel 联系方式 String 联系方式
表10 reservation(预约表)
字段 名称 类型 描述
rvId
interDate 面试时间 datetime 在需时间内
questions 试题 varchar 面试试题(写个题目即可)
interEval 面试评价 varchar 自行评价
Interviewer面试负责人 varchar
项目经理 项目助理 招聘经理 招
聘助理(名字)
rvPer 预约人 varchar
可以自己写最好是招聘助理之类
的
resId 面试人简历id int 和简历表一对多外键关系
参考文献:
[1] HANS BERGSTEN.JSP设计[M].第3版.林琪,朱涛江 译.北
京:中国电力出版社,2004.
[2] 高洪岩.精通Java Web实用开发技术[M].北京:电子工业出版社,
2009.
[3] 邵丽萍.java语言程序设计[M].北京:清华大学出版社,2008.
[4] 文龙.SQL Server 2005中文版入门与提高 [M].北京:清华大学出
版社,2007.
[5] 王珊.数据库原理[M].北京:高等教育出版社,2010.
(责任编辑:孙 娟)
·48· 软 件 导 刊 2014年