人事工资管理系统数据库设计[1]_第1页
人事工资管理系统数据库设计[1]_第2页
人事工资管理系统数据库设计[1]_第3页
人事工资管理系统数据库设计[1]_第4页
人事工资管理系统数据库设计[1]_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人事工资管理系统 1 问题描述 1.1 设计目的 本系统的设计目标是能够对该公司的员工的基本信息和工资信息进行 添加和修改,根据个人信息将工资分为职务工资,职称工资和其他工资。 能够调整工资标准和员工信息,也能够调整其他工资项目,根据需要对教 职员工基本信息和工资信息的查询,系统应该包括系统用户数据的添加, 修改和删除。系统应该具有简单,易用,小巧,经典的特色,应该能够对 高校工资管理进行优化,使其系统化,高效化,智能化。并保证工资管理 的准确性,简易性,为公司财务人员提供便利。 1.2 设计背景 随着市场经济的快速发展,公司规模越来越大,员工的数量也越来越 多,员工工资管理更加的复杂,而工资管理是一项琐碎、复杂而又十分细 致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果 实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人 员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算 准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行 统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手 工管理所无法比拟的优点. 例如:检索迅速、查找方便、可靠性高、存储量大、 保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资资管理 的效率,也是企业的科学化、正规化管理, 与世界接轨的重要条件。这就对人 事工资管理提出了新的要求,用计算机管理系统来管理高校工资已经成为 目前的趋势,使用计算机可以高速,快捷地完成以上工作。在计算机联网 后,数据在网上传递,可以实现数据共享,避免重复劳动,规范数据管理 行为,从而提高了管理效率和水平。人事工资管理系统便是以计算机为工 具,通过对工资管理所需的信息管理,不仅把管理人员从繁琐的数据计算 处理中解脱出来,而且优化了管理体系,使其高效化,简易化,智能化, 也提高了透明度和互动性。 2 系统目标和建设原则 2.1 系统目标 某公司决定建立“工资管理系统” ,以取代单一的人工管理。根据人员 基本情况表中的职位、职称及工龄长短,决定工资表中的基本工资和岗位 1 津贴的具体数值。根据各部门上报的扣款表的内容决定工资表中扣款项的 金额。按月汇总工资表。 2.2 建设原则 根据我们确定的工资数据库的设计思想,我们提出我建设原则如下: A高可靠性: 该系统是该公司进行工资管理、员工信息管理、日常行政管理和 奖惩管理的基础设施,要求有很高的可靠性,以此建立起稳定、实 用的应用环境,因此系统方案设计就以高可靠性为首要原则。 B安全性: 系统平台和系统平台数据的安对网络系统应严格地管理,并 通过防火墙和有效设置权限等方法加强系统平台和数据的安全。 C实用性: 选择适合公司应用规模和层次的技术,需求操作平台充分考虑其 性价比和适用性,网络管理简单方便、可维护性强,以降低系统管 理、运行、维护和升级费用,增强可使用性。 D规范、开放: 坚持开放性和标准化原则,采用的各种系统平台、协议、技术、开 发工具、应用系统是开放的、标准化的和可维护的。 3 运行环境规划 选择微软平台作为主导,一方面考虑目前微软的飞速发展,越来越多的 企业在规划内部网络时,将微软平台作为首选方案;另一方面从技术角度 来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都非常容 易,而且性能优越。 A开发工具与语言:visual basic 6.0 B中文版硬件环境:CPU 型号为 Pentium 以上,内存 128M 以上。 C系统环境:Linux 及 Windows98 以上系统均可。 DDBMS 开发工具:MS SQL Server 2005 4 需求分析说明 4.1 功能需求描述 A员工基本信息模块 员工基本信息模块具有员工信息输入、员工增删、员工信息查询三个功 能,员工基本信息包括员工号、员工姓名、员工性别、所在职位、具体职 称、工龄和工资等级等信息。员工增删实现了对数据库中员工信息的增加 和删除。员工可以通过员工号或员工姓名对员工信息进行查询。 B工资结构设置模块 根据该公司的工资管理实际情况,本系统将工资结构分为职位工资、职 称工资、工龄工资、其他工资四部分。该模块可以对这四个工资类型设置工 资等级,并对每个等级设置工资标准。 C工资汇总模块 用户在员工信息管理模块对该员工的工资等级进行输入以后,在工资汇 总模块会自动对员工工资进行汇总。用户可以打印出工资汇总表,打印之 前可以通过打印预览功能进行打预览。 以下便是该系统的功能模块示意图: 图 4.2 人事工资管理系统功能模块结构图 工资信息管理 工资结算 工资修改 工资创建 工资统计 工资标准设立 工龄工资标准设立 职称工资标准设立 职位工资标准设立 员工信息管理 员工信息删除 员工信息修改 员工信息添加 系统用户管理 用户数据添加 用户数据修改 用户数据查询 高 校 工 资 管 理 系 统 其他工资标准设立 3 4.3 数据库设计 4.3.1 数据库介绍 所谓数据库(Database )就是指按一定组织方式存储在一起的,相 互有关的若干个数据的结合,数据库管理系统(database Management System)就是一种操纵和管理数据库的大型软件,简称 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 199 之间 6 工资等级 数值型 2 199 之间 表 4. 1 员工信息表:Personnel.dbf 表 4. 2 职位工资设置表:course.dbf 字段 字段名 类型 宽度 说明 1 职称名称 字符型 14 小于等于 7 个汉字 2 工资标准 数值型 4 19999 之间 表 4. 3 职称工资设置表:rank.dbf 字段 字段名 类型 宽度 说明 1 工龄等级 数值型 2 199 之间 2 工资标准 数值型 4 19999 之间 表 4. 4 工龄工资设置表:time.dbf 字段 字段名 类型 宽度 说明 1 工资等级 数值型 2 199 之间 2 工资标准 数值型 4 19999 之间 5 字段 字段名 类型 宽度 说明 1 工资标准 数值型 2 199 之间 2 备注 字符型 10 任意字符 表 4. 5 其他工资:other.dbf 5 概念结构设计 说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原 始数据形式,包括各数据项、记录、表的标识符、定义、类型、度量单位和值 域,建立本数据库的每一幅用户视图和全局视图(E-R 图,可以用基本 E-R 图扩 展 E-R 图或类图)。 n 1 图 5.1 E-R 图 员工 部门 职位工资 职称工资 工龄工资 员工编号 职务 受聘时间 所属部门 姓名 职称 职位 工资 工资 职称 工资 工龄部门编号 部门名称 从属 拥有 其他工资 工资 备注 将概念结构映射为数据库全局逻辑结构(关系模型),包括所确定的关键字 和属性、重新确定的记录结构和所建立的各个表文件之间的相互关系。 员工(员工编号,姓名,职务,职称,受聘时间,所属部门) 部门(部门编号,部门名称) 职务工资(职务,工资) 职称工资(职称,工资) 受聘时间工资(受聘时间,工资) 扣款工资(员工编号,扣款金额) 6 系统的功能实现 6.1 数据库的连接: 6.1.1 利用控件 Adodc 连接 在 Adodc 控件中,设置 ConnectStringProvider=”SQLOLEDB.1; Integrated Security=SSPI;Persist Security Info=False; Initial Catalog=ManageSystem”,然后再设置 CommandType 为 8 adCmdUnknown,数据源定为 SQL 查询语句,语句内容根据不同需要 而更改。 图 6.1 设定 ConnectString 属性 当然,可以手工输入,也可以利用“生成”让 VB 自动给出语句。 7 图 6.2 设定 RecordSource 属性 A连接数据库核心语句: Adodc1.ConnectStringProvider=”SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ManageSystem” Adodc1.RecordSource = SQL 查询语句 Adodc1.Recordset.Open Adodc1.Refresh B断开数据库核心语句: Adodc1.Recordset.Close 6.2.2 利用 ADODB 对象作为 SQL 连接接口 由于在程序中使用瞬间连接数据库比长期连接数据库高效,而且在 本程序中大量使用,因而新增了模块 Module1,自定义了 SqlConnect 函数作为连接,SqlDisConnect 函数来断开连接,方便编写程序,提高 代码使用率,提高开发效率和运行效率。 A连接数据库核心语句: Set Ado_Conn = New ADODB.Connection Set Ado_RS = New ADODB.Recordset str_CS = “Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ManageSystem“ str_RS = SQL 查询语句 SqlConnect Ado_Conn, Ado_RS, str_CS, str_RS 其中模块中定义了 SqlConnect 函数: Public Sub SqlConnect(ByVal Ado_Connection As ADODB.Connection, _ ByVal Ado_Recordset As ADODB.Recordset, _ Ado_ConnectionString As String, _ Ado_RecordSource As String) Ado_Connection.ConnectionString = Ado_ConnectionString Ado_Connection.ConnectionTimeout = 30 Ado_Connection.Open Ado_Recordset.Open Ado_RecordSource, Ado_Connection End Sub B断开数据库核心语句: SqlDisConnect Ado_RS 其中模块中定义了 SqlDisConnect 函数: Public Sub SqlDisConnect(ByVal AdoRecordset As ADODB.Recordset) If AdoRecordset.State Then AdoRecordset.Close End Sub 6.2 数据的查询 6.2.1 利用表格方式对 SQL 数据进行查询 利用连接数据库的方法,返回一个 RecordSet 集合。 通过 MSHFlexGrid 控件、DataGrid 控件等控件对集合作表格方式的 输出。使用 Adodc 控件时,可以通过属性的设定,把 MSHFlexGrid 控 件、DataGrid1 控件捆绑在 Adodc 控件上。 图 6.3 对用 Adodc 控件捆绑 当使用 ADODB 对象时,可以通过 Set 语句对 MSHFlexGrid.DataSourse 进行赋 ADODB 对象的 Recordset 值。但是 DataGrid1 则不能。 9 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 两个属性进行判断: If Ado_RS.BOF = False And Ado_RS.EOF = False Then 集合不为空 Else 集合为空 End If B、利用 Recordset 的 RecordCount 属性判断: If Ado_RS.RecordCount 0 Then 集合不为空 Else 集合为空 End If C、利用 DataGrid 的 ApproxCount 属性来判断: 判断条件会因表格的自定义显示而有所不同 If DataGrid1.ApproxCount 0 Then 集合不为空 Else 集合为空 End If D、利用 MSHFlexGrid 的 Rows 属性判断: 判断条件会因表格的自定义显示而有所不同 If MSHFlexGrid1. Rows 1 Then 集合不为空 Else 集合为空 End If 6.2.4 查询特定元组 对于特定元组,由于主码的唯一性,所以当对主码作准确查询时, 所得的表只有两种情况:只有一条元组或者什么都没有。 通过 6.2.3 的方法,可以对集合判空。如果为空,则认为特定元组 不存在, ,查询失败;如果返回一条元组,则指针肯定是指向该元组, 可以马上对数据进行读取。 核心代码: Set Ado_Conn = New ADODB.Connection Set Ado_RS = New ADODB.Recordset str_CS = “Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ManageSystem“ str_RS = “select * from BaseTable where BID=“ & Trim(Text1.Text) & “ SqlConnect Ado_Conn, Ado_RS, str_CS, str_RS Ado_RS.RecordCount 检测帐号是否存在 If Ado_RS.EOF = False Then 如果帐号存在 If Trim(Ado_RS.Fields(“BID“) = Trim(Text1.Text) And Trim (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 11 Adodc1.Refresh C利用 DataGrid 控件对数据库进行强行修改。 只需要连接好数据库,然后对 DataGrid 进行捆绑,而且 DataGrid 的 AllowUpdate 等属性设为 True 就可以通过界面直接修改。 6.4 数据的删除 基本方法跟 6.3 一样。 A使用 SQL 嵌套语句删除数据。 Ado_Conn.Execute “delete from 表名 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 “insert into 表名 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(职位) 。通过对其的 判断,来选择其他更多的步骤。 核心语句: Select Case Trim(Ado_RS.Fields(“BPosition“) 检测权限 Case “总裁“ Case “人事经理“ Case “经理“ Case “维护部员工“ Case “员工“ End Select 7 心得体会 随着我国成功加入 WTO 及信息化浪潮的日益临近,企业在激烈的市场竞争 环境下求得生存,就必须有效地利用人才、时间、信息结合的优势。因此,如 何使企业及时掌握本企业人才的各种信息、第一时间处理好随时变化的工资管 理问题,建立一套符合企业实际的工资管理系统就显得尤为重要。 在本项目的软件开发的过程中,我全面实践一个面向数据库的应用系统的 开发过程,学习很多有关的知识。这样的项目对我们学过的数据结构,程序设 计,数据库,软件工程,等课程是一个综合性很高的实践。一些以前没有学得 很杂实的课程内容,由于需要在实践中运行,刚开始我也感到头痛。但回过头 来再去看教课书,经历着一段时间的实践,对于这些知识点有关的背景,概念 和解决方案理解得更透彻了,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论