人事工资管理系统数据库设计.docx
- 文档编号:28966049
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:19
- 大小:146.95KB
人事工资管理系统数据库设计.docx
《人事工资管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《人事工资管理系统数据库设计.docx(19页珍藏版)》请在冰豆网上搜索。
人事工资管理系统数据库设计
人事工资管理系统
1问题描述
1.1设计目的
本系统的设计目标是能够对该公司的员工的基本信息和工资信息进行添加和修改,根据个人信息将工资分为职务工资,职称工资和其他工资.能够调整工资标准和员工信息,也能够调整其他工资项目,根据需要对教职员工基本信息和工资信息的查询,系统应该包括系统用户数据的添加,修改和删除。
系统应该具有简单,易用,小巧,经典的特色,应该能够对高校工资管理进行优化,使其系统化,高效化,智能化。
并保证工资管理的准确性,简易性,为公司财务人员提供便利。
1.2设计背景
随着市场经济的快速发展,公司规模越来越大,员工的数量也越来越多,员工工资管理更加的复杂,而工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高人事工资资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
这就对人事工资管理提出了新的要求,用计算机管理系统来管理高校工资已经成为目前的趋势,使用计算机可以高速,快捷地完成以上工作。
在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范数据管理行为,从而提高了管理效率和水平。
人事工资管理系统便是以计算机为工具,通过对工资管理所需的信息管理,不仅把管理人员从繁琐的数据计算处理中解脱出来,而且优化了管理体系,使其高效化,简易化,智能化,也提高了透明度和互动性.
2系统目标和建设原则
2.1系统目标
某公司决定建立“工资管理系统”,以取代单一的人工管理。
根据人员基本情况表中的职位、职称及工龄长短,决定工资表中的基本工资和岗位津贴的具体数值。
根据各部门上报的扣款表的内容决定工资表中扣款项的金额.按月汇总工资表。
2.2建设原则
根据我们确定的工资数据库的设计思想,我们提出我建设原则如下:
A.高可靠性:
该系统是该公司进行工资管理、员工信息管理、日常行政管理和奖惩管理的基础设施,要求有很高的可靠性,以此建立起稳定、实用的应用环境,因此系统方案设计就以高可靠性为首要原则。
B.安全性:
系统平台和系统平台数据的安-—对网络系统应严格地管理,并通过防火墙和有效设置权限等方法加强系统平台和数据的安全。
C.实用性:
选择适合公司应用规模和层次的技术,需求操作平台充分考虑其性价比和适用性,网络管理简单方便、可维护性强,以降低系统管理、运行、维护和升级费用,增强可使用性。
D.规范、开放:
坚持开放性和标准化原则,采用的各种系统平台、协议、技术、开发工具、应用系统是开放的、标准化的和可维护的。
3运行环境规划
选择微软平台作为主导,一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;另一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都非常容易,而且性能优越.
A.开发工具与语言:
visualbasic6。
0
B.中文版硬件环境:
CPU型号为PentiumⅢ以上,内存128M以上。
C.系统环境:
Linux及Windows98以上系统均可。
D.DBMS开发工具:
MSSQLServer2005
4需求分析说明
4。
1功能需求描述
A.员工基本信息模块
员工基本信息模块具有员工信息输入、员工增删、员工信息查询三个功能,员工基本信息包括员工号、员工姓名、员工性别、所在职位、具体职称、工龄和工资等级等信息。
员工增删实现了对数据库中员工信息的增加和删除。
员工可以通过员工号或员工姓名对员工信息进行查询。
B.工资结构设置模块
根据该公司的工资管理实际情况,本系统将工资结构分为职位工资、职称工资、工龄工资、其他工资四部分.该模块可以对这四个工资类型设置工资等级,并对每个等级设置工资标准.
C.工资汇总模块
用户在员工信息管理模块对该员工的工资等级进行输入以后,在工资汇总模块会自动对员工工资进行汇总。
用户可以打印出工资汇总表,打印之前可以通过打印预览功能进行打预览。
以下便是该系统的功能模块示意图:
图4.2人事工资管理系统功能模块结构图
4。
3数据库设计
4。
3.1数据库介绍
所谓数据库(Database)就是指按一定组织方式存储在一起的,相互有关的若干个数据的结合,数据库管理系统(databaseManagementSystem)就是一种操纵和管理数据库的大型软件,简称DBMS,他们建立在操作系统的基础上,对数据库进行统一的管理和控制,其功能包括数据库定义,数据库管理,数据库建立和维护,与操作系统通讯等.DBMS通常由数据字典,数据描述语言及其编译程序,数据操纵(查询)语言及其编译程序,数据库管理例行程序等部分组成。
关系数据库是以关系模型为基础的数据库,是数据表、记录、字段之间的关系将这些表联系在一起,关系数据库提供了成为结构化查询语句(SQL)标准接口,该接口允许使用多种数据库工具和产品,关系数据库是目前最流行的数据库。
在VFP中数据库是一个逻辑概念,通过一组系统文件将相互关联的数据表及其数据库对象组织起来,成为扩展名为。
dbc的数据库文件、扩展名为.dtc的数据库备注文件和扩展名为.dcx的数据库索引文件,三个文件一般不能直接使用,而是交由VFP数据库统一管理。
VFP把.dbf文件称为表文件,一个库可以容纳多个表,通过库我们明确各表之间的相互关系,使表文件不在彼此孤立,而成为相互关联的数据集合。
4。
3.2数据流图
根据对工资管理工作的调查和用户需求分析,该系统的数据流图如图4.2所示:
图4.2系统的数据流图
4.3。
3数据字典分析
该软件的数据库由下述五张数据表组成:
A.员工信息表:
Personnel.dbf
B.职位工资设置表:
course。
dbf
C.职称工资设置表:
rank。
dbf
D.工龄工资设置表:
time.dbf
E.其他工资设置表:
rank.dbf
字段
字段名
类型
宽度
说明
1
员工号
字符型
3
数字
2
员工姓名
字符型
10
小于等于5个汉字
3
员工性别
字符型
2
“男”或“女”
4
职位名称
字符型
14
小于等于7个汉字
5
工龄
数值型
2
1~99之间
6
工资等级
数值型
2
1~99之间
表4。
1员工信息表:
Personnel.dbf
字段
字段名
类型
宽度
说明
1
工资等级
数值型
2
1~99之间
2
工资标准
数值型
4
1~9999之间
表4.2职位工资设置表:
course.dbf
字段
字段名
类型
宽度
说明
1
职称名称
字符型
14
小于等于7个汉字
2
工资标准
数值型
4
1~9999之间
表4。
3职称工资设置表:
rank.dbf
字段
字段名
类型
宽度
说明
1
工龄等级
数值型
2
1~99之间
2
工资标准
数值型
4
1~9999之间
表4.4工龄工资设置表:
time.dbf
字段
字段名
类型
宽度
说明
1
工资标准
数值型
2
1~99之间
2
备注
字符型
10
任意字符
表4.5其他工资:
other。
dbf
5概念结构设计
说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、表的标识符、定义、类型、度量单位和值域,建立本数据库的每一幅用户视图和全局视图(E-R图,可以用基本E-R图扩展E-R图或类图)。
n
1
图5.1E-R图
将概念结构映射为数据库全局逻辑结构(关系模型),包括所确定的关键字和属性、重新确定的记录结构和所建立的各个表文件之间的相互关系。
员工(员工编号,姓名,职务,职称,受聘时间,所属部门)
部门(部门编号,部门名称)
职务工资(职务,工资)
职称工资(职称,工资)
受聘时间工资(受聘时间,工资)
扣款工资(员工编号,扣款金额)
6系统的功能实现
6.1数据库的连接:
6.1。
1利用控件Adodc连接
在Adodc控件中,设置ConnectStringProvider=”SQLOLEDB。
1;
IntegratedSecurity=SSPI;PersistSecurityInfo=False;
InitialCatalog=ManageSystem”,然后再设置CommandType为8–adCmdUnknown,数据源定为SQL查询语句,语句内容根据不同需要而更改.
图6。
1设定ConnectString属性
当然,可以手工输入,也可以利用“生成"让VB自动给出语句.
图6。
2设定RecordSource属性
A.连接数据库核心语句:
Adodc1.ConnectStringProvider=”SQLOLEDB。
1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=ManageSystem”
Adodc1。
RecordSource=SQL查询语句
Adodc1。
Recordset。
Open
Adodc1。
Refresh
B.断开数据库核心语句:
Adodc1.Recordset.Close
6.2。
2利用ADODB对象作为SQL连接接口
由于在程序中使用瞬间连接数据库比长期连接数据库高效,而且在本程序中大量使用,因而新增了模块Module1,自定义了SqlConnect函数作为连接,SqlDisConnect函数来断开连接,方便编写程序,提高代码使用率,提高开发效率和运行效率。
A.连接数据库核心语句:
SetAdo_Conn=NewADODB.Connection
SetAdo_RS=NewADODB.Recordset
str_CS=”Provider=SQLOLEDB。
1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=ManageSystem”
str_RS=SQL查询语句
SqlConnectAdo_Conn,Ado_RS,str_CS,str_RS
其中模块中定义了SqlConnect函数:
PublicSubSqlConnect(ByValAdo_ConnectionAsADODB。
Connection,_
ByValAdo_RecordsetAsADODB.Recordset,_
Ado_ConnectionStringAsString,_
Ado_RecordSourceAsString)
Ado_Connection.ConnectionString=Ado_ConnectionString
Ado_Connection。
ConnectionTimeout=30
Ado_Connection。
Open
Ado_Recordset.OpenAdo_RecordSource,Ado_Connection
EndSub
B.断开数据库核心语句:
SqlDisConnectAdo_RS
其中模块中定义了SqlDisConnect函数:
PublicSubSqlDisConnect(ByValAdoRecordsetAsADODB。
Recordset)
IfAdoRecordset。
StateThenAdoRecordset.Close
EndSub
6.2数据的查询
6。
2。
1利用表格方式对SQL数据进行查询
利用连接数据库的方法,返回一个RecordSet集合。
通过MSHFlexGrid控件、DataGrid控件等控件对集合作表格方式的输出。
使用Adodc控件时,可以通过属性的设定,把MSHFlexGrid控件、DataGrid1控件捆绑在Adodc控件上。
图6.3对用Adodc控件捆绑
当使用ADODB对象时,可以通过Set语句对MSHFlexGrid。
DataSourse进行赋ADODB对象的Recordset值。
但是DataGrid1则不能。
6。
2。
2利用字符窜方式对SQL数据进行查询
利用连接数据库的方法,返回一个RecordSet集合。
通过对RecordSet集合的提取,把元组中的属性值赋给TextBox等控件控件,让其输出。
核心代码:
Adodc1。
Recordset。
MoveFirst
Adodc1.Recordset.Find”工号=’1234”
Text1.Text=Adodc1。
Recordset.Fields("工号”).Value
Text2.Text=Adodc1.Recordset。
Fields("姓名”)。
Value
。
.
.
6.2。
3对查询所得到的集合作出判空:
方法有多种:
(设Ado_RS为Recordset)
A、利用EOF和BOF两个属性进行判断:
IfAdo_RS.BOF=FalseAndAdo_RS.EOF=FalseThen
集合不为空
Else
集合为空
EndIf
B、利用Recordset的RecordCount属性判断:
IfAdo_RS.RecordCount>0Then
集合不为空
Else
集合为空
EndIf
C、利用DataGrid的ApproxCount属性来判断:
判断条件会因表格的自定义显示而有所不同
IfDataGrid1.ApproxCount〉0Then
集合不为空
Else
集合为空
EndIf
D、利用MSHFlexGrid的Rows属性判断:
判断条件会因表格的自定义显示而有所不同
IfMSHFlexGrid1.Rows>1Then
集合不为空
Else
集合为空
EndIf
6。
2.4查询特定元组
对于特定元组,由于主码的唯一性,所以当对主码作准确查询时,所得的表只有两种情况:
只有一条元组或者什么都没有.
通过6。
2.3的方法,可以对集合判空.如果为空,则认为特定元组不存在,,查询失败;如果返回一条元组,则指针肯定是指向该元组,可以马上对数据进行读取。
核心代码:
SetAdo_Conn=NewADODB.Connection
SetAdo_RS=NewADODB.Recordset
str_CS=”Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;Persist
SecurityInfo=False;InitialCatalog=ManageSystem"
str_RS="select*fromBaseTablewhereBID='"&
Trim(Text1。
Text)&"'"
SqlConnectAdo_Conn,Ado_RS,str_CS,str_RS
Ado_RS。
RecordCount
’检测帐号是否存在
IfAdo_RS.EOF=FalseThen'如果帐号存在
IfTrim(Ado_RS.Fields("BID”))=Trim(Text1。
Text)AndTrim
(Ado_RS.Fields("BPassword”))=Trim(Text2。
Text)Then
还有一种方法,利用Find方法进行查找,如果找到则指针指向该元组.如找不到则返回错误。
因此利用捕获错误的方法也可以得到效果。
第三种,利用MSHFlexGrid控件、DataGrid控件等,均可以利用控件内部的属性和方法进行查询.
6。
3数据的修改
A.利用嵌入SQL语句。
首先使用ADODB对象连接的方法,利用ADODB.Connection.
Execute直接嵌套运行SQL语句对数据进行修改。
核心语句:
Ado_Conn。
Execute“updata表名set某属性=XX”
B.此外还可以利用ADO接口提供的Fields属性对数据进行修改。
核心语句:
Adodc1.Recordset.Find”工号=’"&Text3。
Text&”'"
Adodc1.Recordset。
Fields("姓名")=Text4.Text
Adodc1.Recordset.Fields(”所属部门")=Combo2.Text
Adodc1。
Recordset。
Fields("职位”)=Combo3.Text
Adodc1.Recordset。
Update
Adodc1。
Refresh
C.利用DataGrid控件对数据库进行强行修改。
只需要连接好数据库,然后对DataGrid进行捆绑,而且DataGrid的AllowUpdate等属性设为True就可以通过界面直接修改。
6.4数据的删除
基本方法跟6.3一样。
A.使用SQL嵌套语句删除数据。
Ado_Conn.Execute“deletefrom表名where某属性=XX”
B.此外还可以利用ADO接口提供的Fields属性对数据进行修改。
核心语句:
Adodc1。
Recordset。
MoveFirst
Adodc1.Recordset.Find”工号=’”&Text3.Text&"'"
Adodc1.Recordset。
Delete
Adodc1。
Recordset.Update
6。
5数据的添加
基本方法跟6.3一样.
A.使用SQL嵌套语句增加数据.
Ado_Conn.Execute“insertinto表名values(某属性=XX)”
B.此外还可以利用ADO接口提供的Fields属性对数据进行修改。
核心语句:
Adodc1.Recordset.MoveFirst
Adodc1。
Recordset.AddItem
Adodc1.Recordset.Fields(”姓名”)=Text4。
Text
Adodc1。
Recordset.Fields(”所属部门”)=Combo2.Text
Adodc1.Recordset。
Fields(”职位")=Combo3.Text
Adodc1。
Recordset.Update
Adodc1。
Refresh
6。
6权限的分配
读取BaseTable(员工基本表)里面的BPosition(职位)。
通过对其的判断,来选择其他更多的步骤。
核心语句:
SelectCaseTrim(Ado_RS。
Fields("BPosition"))’检测权限
Case”总裁”
…………
Case”人事经理”
…………
Case”经理”
…………
Case"维护部员工”
…………
Case”员工”
…………
EndSelect
7心得体会
随着我国成功加入WTO及信息化浪潮的日益临近,企业在激烈的市场竞争环境下求得生存,就必须有效地利用人才、时间、信息结合的优势.因此,如何使企业及时掌握本企业人才的各种信息、第一时间处理好随时变化的工资管理问题,建立一套符合企业实际的工资管理系统就显得尤为重要。
在本项目的软件开发的过程中,我全面实践一个面向数据库的应用系统的开发过程,学习很多有关的知识。
这样的项目对我们学过的数据结构,程序设计,数据库,软件工程,等课程是一个综合性很高的实践。
一些以前没有学得很杂实的课程内容,由于需要在实践中运行,刚开始我也感到头痛.但回过头来再去看教课书,经历着一段时间的实践,对于这些知识点有关的背景,概念和解决方案理解得更透彻了,学习起来也越来越有兴趣,越来越轻松。
另外我还充分体会了从事软件开发工作需要特别谨慎认真地态度和作风,一点都不能马虎。
每个细微的细节都必须十分注意,如果考不认真思考决策,就会出现或大或小的错误。
如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时会推倒很多前面做的工作重来。
有时候,我自己觉得我写的程序非常正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间没有一点进展.这时候,我一般是先自己通过书本,手册和资料找解决办法,实在没辙才向专家请教。
尽管向专家请教解决问题比较快,自己钻研花的时间较多,但我强迫自己独立思考对其噢的学习提高帮助非常大。
在开始编写程序的时候,我看到别人的软件功能非常的详细,而且界面非常漂亮,总是希望自己的软件也非常的完善,但是,经过近几年的学习,发现编一个优秀软件不是一蹴而就的事情,需要长时间的积累和经验。
我认清自己的能力后,特别注意在工作的过程中不贪图大而全,而是根据自己的能力制订适当的目标。
在反反复复的学习和不耻下问之下,我的辛勤努力有了回报,终于作出一个简单的软件,虽然这个软件功能非常简单,而且我想,在实际运用中,还有些不足,因为工资的的内容非常丰富,我涉及到的仅仅是工资管理的一部分简单内容,离实际的客户需求肯定还有差距。
例如工资管理和人事管理,考勤管理以及财务账表的关联考虑得还不完善。
最好是这几部分的数据可以相互转化利用,不需要重复录入,针对工资管理,还应该建立一个有普遍意义的模型,这样对用户来讲,就比较容易通过修改有关管理制度来适应我们开发的软件。
8参考文献
●《数据库系统简明教程》王珊高等教育出版社2004。
9
●《数据库系统概论》杨开英武汉理工大学出版社2003。
1
●《数据库系统概论(第三版)》萨师宣王珊高等教育出版社2000.2
●《AFirstCourseinDatabaseSystems》JeffreyD。
UllmanJenniferWidom.清华大学出版社1998。
2
●《Visualfoxpro数据库开发关键技术与实例应用》周桓张雨王国辉人民邮电出版社2004.5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人事 工资管理 系统 数据库 设计