ToB企服应用市场:ToB评测及商务社交产业平台
标题: 数据库课程设计-工资管理体系-MySQL [打印本页]
作者: 来自云龙湖轮廓分明的月亮 时间: 2024-6-15 01:27
标题: 数据库课程设计-工资管理体系-MySQL
目次
第一节 需求分析
1.1 需求分析概述
1.2 功能需求分析
1.2.1 人事数据管理模块
1.2.2 考勤数据管理模块
1.2.3 工资数据管理模块
1.2.4 工资计算公式设置模块
1.3 数据需求分析
1.3.1 数据项界说
1.3.2 数据结构界说
第二节 概念结构设计
2.1 分E-R图
2.2 根本E-R图
第三节 逻辑结构设计
3.1关系模式设计(下划线“ ”表示主码)
3.2存储过程和触发器的设计
第四节 物理结构设计
第五节 数据库实施
5.1 创建根本表
5.2 插入测试数据
5.3 创建业务处理的存储过程并测试
5.4 创建业务处理的视图并测试
5.5 创建业务处理的触发器并测试
第一节 需求分析
1.1 需求分析概述
随着当今企业人员数量的不断增长,企业的工资管理工作也就变得越来越复杂。对于一个现代化的企业来说,信息化管理是必须的,而财务管理部门作为事业单位的重点部门,同样需要加强信息化管理。设计工资管理体系的目的就是为了资助财务部门能更好地管理本单位的职工工资,提高工作服从,实现职工工资信息管理的规范化和主动化。明确查询公司职工某年某月的工资情况,通过职工工资管理体系,也能查询到职工本身的一些根本信息。如何对职工工资举行信息化的管理,减轻财务部门的劳动强度,并且确保相干数据的安全,信息处理的高效,正是本数据库设计目的地点。
1.2 功能需求分析
以我国某国有企业为例设计数据库,通过网上查询资料和询问相干经验人士,相识此国企的职位品级制度和工资分配制度。为此一共总结归纳出使用的四大模块,分别为人事数据管理模块、考勤数据管理模块、工资数据管理模块以及工资计算公式设置模块。
1.2.1 人事数据管理模块
人事数据管理模块是企业基础性资料信息的体现,它主要功能是统计、管理员工个人和相干部门的信息。员工种类分为在职人员和退休人员。企业内部的人事档案等相干质料都是依靠人事数据管理模块来举行的,每当公司有新招聘的员工入职,都需要对该名新员工举行人事数据的登记与记载,并记载入职日期,每年应主动更新员工工龄。每个员工都应具有唯一员工编号,员工编号由两部分组成,第一部分为入职年份,第二部分为首次入职部门代号,第三部分为序次号,例如2000010001表示为该员工为2000年入职,首次入职的部门编号为01,是第一位员工。员工的编号保持不变,直到退休。当员工处于离职、退休等工作状态,需要对人事数据做到及时更新、修改、删除等操作,并加以记载。员工的个人信息应真实可靠,只有人事部管理员有修改信息权限。但修改权限不可随意使用,需颠末层层审批批准才可使用。当员工从在职状态处于退休状态时,应记载下退休日期,以便工资数据管理使用。该模块功能如图所示:
图 1 人事数据管理模块结构图 1.2.2 考勤数据管理模块
考勤数据管理模块是记载员工每日出勤状态,根据签到与签退时间来判定是否为早退、迟到或缺勤等违规状态[5]。与此同时,也将记载员工的加班时间、请假时间,以此为依据,对员工举行奖罚。本数据库设计只针对月考勤数据做相干分析,以月考勤数据来继续睁开设计。其中加班时间以小时为计数单位,请假时间以天为计数单位,其中规定每月可有两天带薪休班机会[6]。
1.2.3 工资数据管理模块
工资数据管理模块是主要包罗在职员工与退休员工的工资的数据录入、查询显示和工资打印。由财务部管理员同一统计与录入。在职员工每月工资主要由根本工资、工龄补贴、绩效工资、考勤奖罚、五险一金和个人所得税构成[2]。工龄补贴主要规则为:
1.在本公司连续工作满一年的员工每月工龄工资为¥50元整。
2.在本公司连续工作满两年的员工每月工龄工资为¥100元整。
3.在本公司连续工作满三年的员工每月工龄工资为¥150元整。
4.在本公司连续工作满四年的员工每月工龄工资为¥180元整。
5.以此类推,之后在本公司工作每增长一年,每月工龄工资相应增长¥30元整。累计十年封顶,十年及十年以上每月工龄工资为¥360元整。
在扣除项目中五险一金包罗根本养老保险、根本医疗保险、赋闲保险、工伤保险和生养保险,及住房公积金。采取缴纳比例如图所示:
图 2 五险一金缴纳比例图 个人所得税按月换算,以5000元为起征点,换算规则如下表所示:
级数
| 全月应纳税所得额
| 税率(%)
| 速算扣除数
|
1
| 不凌驾3000元的
| 3
| 0
|
2
| 凌驾3000元至12000元的部分
| 10
| 210
|
3
| 凌驾12000元至25000元的部分
| 20
| 1410
|
4
| 凌驾25000元至35000元的部分
| 25
| 2660
|
5
| 凌驾35000元至55000元的部分
| 30
| 4410
|
在考勤奖罚中规定每次迟到早退每次扣25元,无故旷工一天100元,在规定休假次数外,请假一天扣50元,加班每小时奖励20元。根据职位设置根本工资,以三个职称为例部门司理基础工资每月8500元,部门总管基础工资每月7500元,平凡员工基础工资每月6500元。
退休员工工资由基础养老金和个人账户养老金构成。住房公积金默认为退休的第一个月已全部领取。根据调查,全省上年度在岗职工月均匀工资定为7000元,为了简便计算则退休员工以此尺度计算。根据国家延迟退休政策同一规定男女65岁退休,个人账户存储额计发月数同一为120。
所有员工的薪酬都是公司通过银行付出到员工银行卡的方式发放的,并且需要录入到数据库中。在对工资数据管理层面上,相干管理工作人员必须及时将职员的工资数据录入到数据库,体系则会根据员工该月的加班、迟到等实际情况运用固定的公式来对工资睁开计算,财务工作人员则需要对工资数据举行稽核。包管数据的严谨性。同时财务人员具有对工资数据修改的权限,对发现的错误及时修改,而公司的平凡员工只有欣赏查询、打印工资明细的权限。该模块功能如图所示:
图 4 工资数据管理模块结构图 1.2.4 工资计算公式设置模块
(1)在职员工工资计算公式:
个人所得税计算公式
个人所得税=全月应纳税所得额*税率-速算扣除数
全月应纳税所得额=税前工资-五险一金-个人专项扣除项目
五险一金计算公式:
五险一金缴纳=税前工资*(8%+0.2%+2%+12%)
其中五险一金中工伤保险和生养保险费率由单位全额缴纳,个人不需要缴费。
考勤奖罚计算公式:
奖罚金额=20a-10b-100c-50b
其中a为加班小时数,b为早退迟到累计小时数,c为旷工天数,d为请假天数(总请假天数-休班天数)。
(2)退休员工工资计算公式:
基础养老金=(全省上年度在岗职工月均匀工资+本人指数化月均匀缴费工资)/2×缴费年限×1%
本人指数化月均匀缴费工资=全省上年度在岗职工月均匀工资×本人均匀缴费指数
本人均匀缴费指数=Σ(在职时月均工资/全省均匀工资)/缴费年数
个人账户养老金=个人账户存储额/计发月数
1.3 数据需求分析
1.3.1 数据项界说
表 2 员工信息表
数据项名
| 别名
| 数据范例
| 取值范围
|
员工编号
| eid
| varchar(11)
| 由入职年份+部门号+序次号组成
|
姓名
| ename
| varchar(11)
| 汉字
|
性别
| sex
| varchar(11)
| 取值:男或女
|
出生日期
| birthday
| Date
| (1945-01-01,
2003-01-01)
|
接洽方式
| phone
| varchar(11)
| 规定尺度11位且唯一
|
入职时间
| intime
| Date
| (1998-01-01,2023-12-01)
|
退休时间
| outtime
| Date
| 默认为空
|
任职状态
| state
| varchar(11)
| 取值:在职或退休
|
表 3 个人专项附加扣除项目表
数据项名
| 别名
| 数据范例
| 取值范围
|
员工编号
| eid
| varchar(11)
| 由入职年份+部门号+序次号组成
|
子女教育
| pro1
| double
| 0或1000的整数倍
|
继续教育
| pro2
| double
| 0或400
|
贷款利息
| pro3
| double
| 0或1000
|
租房
| pro4
| double
| (0,800,1100,1500)
|
赡养老人
| pro5
| double
| (0,1000,2000,4000)
|
大病医疗
| pro6
| double
| 0到8万
|
表 4 部门表
数据项名
| 字段名
| 数据范例
| 长度
|
部门编号
| did
| varchar(11)
| 11
|
部门名
| dname
| varchar(11)
| 11
|
部门地点
| address
| varchar(11)
| 11
|
表 5 任职表
数据项名
| 别名
| 数据范例
| 取值范围
|
员工编号
| eid
| varchar(11)
| 由入职年份+部门号+序次号组成
|
部门编号
| did
| varchar(11)
| 依据部门表
|
职称
| zhicheng
| varchar
| 平凡员工或部门司理或部门总管
|
任职时间
| rtime
| Date
|
|
表 6 月考勤表
数据项名
| 别名
| 数据范例
| 取值范围
|
考勤月份
| k_month
| varchar(11)
| 格式“年份-月份”
|
员工编号
| eid
| varchar(11)
| 由入职年份+部门号+序次号组成
|
加班时间
| over_hour
| int
| 默认为零
|
请假天数
| leave_day
| int
| 默认为零
|
迟到次数
| late_time
| int
| 默认为零
|
早退次数
| early_time
| int
| 默认为零
|
缺勤次数
| absent_time
| int
| 默认为零
|
表 7 在职员工工资表
数据项名
| 别名
| 数据范例
| 取值范围
|
员工编号
| eid
| varchar(11)
| 由入职年份+部门号+序次号组成
|
工资月份
| gmonth
| varchar(11)
| 格式“年份-月份”
|
根本工资
| basic_pay
| double
| 默认为零
|
工龄补贴
| seniority_pay
| double
| 默认为零
|
绩效工资
| jixiao_pay
| double
| 默认为零
|
考勤赏罚
| kaoqin_pay
| double
| 默认为零
|
五险一金
| wuxian
| double
| 默认为零
|
个人所得税
| tax
| double
| 默认为零
|
实发工资
| shifa_pay
| double
| 默认为零
|
发放状态
| gstate
| varchar(11)
| 已发或未发
|
表 8 退休员工工资表
数据项名
| 别名
| 数据范例
| 说明
|
员工编号
| eid
| varchar(11)
| 由入职年份+部门号+序次号组成
|
工资月份
| tmonth
| varchar(11)
| 格式“年份-月份”
|
在职月均工资
| av_pay
| double
| 默认为零
|
基础养老金
| basic_yl
| double
| 默认为零
|
个人账户养老金
| person_yl
| double
| 默认为零
|
实发工资
| shifa_yl
| double
| 默认为零
|
发放状态
| tstate
| varchar(11)
| 取值:已发或未发
|
1.3.2 数据结构界说
表 9 数据结构表
数据结构名
| 数据结构组成
| 寄义说明
|
员工信息表
| 员工编号+姓名+性别+出生日期+接洽方式+入职时间+退休时间+任职状态
| 存储员工相干的个人信息
|
部门表
| 部门编号+部门名+部门地点
| 存储部门相干信息
|
任职表
| 员工编号+部门编号+职称+任职时间
| 存储员工的职位信息
|
月考勤表
| 考勤月份+员工编号+加班时间+请假天数+迟到次数+早退次数+缺勤次数
| 存储员工的每月的考勤记载
|
个人专项附加扣除项目表
| 员工编号+子女教育+继续教育+贷款利息+租房+赡养老人+大病医疗
| 存储员工个人情况
|
在职员工工资表
| 员工编号+工资月份+根本工资+工龄补贴+绩效工资+考勤赏罚+个人所得税+五险一金+实发工资+发放状态
| 存储在职员工每月工资状态
|
退休员工工资表
| 员工编号+工资月份+在职月均工资+基础养老金+个人账户养老金+实发工资+发放状态
| 存储退休员工工资状态
|
第二节 概念结构设计
2.1 分E-R图
由需求分析可得共有六个实体,分别是员工、部门、月考勤、在职工资、退休工资和个人专项附加扣除项目。一个员工在一个部门,一个部门可以有多个员工,部门与员工的关系是一对多的关系,每个员工在自己部门担任不同职位。一个员工只有一份月考勤,每份月考勤与每个员工逐一对应。职工分为在职职工和退休职工,在职职工与在职工资是一对一关系,退休职工与退休工资也是一对一关系,员工与个人专项扣除项目是一对一关系。
由以上信息得到下面的分E-R图:
图 5 员工-部门分E-R图
图 6 员工-月考勤分E-R图
图 7 员工-工资分E-R图 2.2 根本E-R图
图 8 根本E-R图
第三节 逻辑结构设计
3.1关系模式设计(下划线“ ”表示主码)
员工(员工编号,姓名,性别,出生日期,接洽方式,入职时间,退休时间,任职状态) 无外码
个人专项附加扣除项目(员工编号,子女教育,继续教育,贷款利息,租房,赡养老人,大病医疗) 外码:员工编号
部门(部门编号,部门名,部门地点) 无外码
任职(员工编号,部门编号,职称,任职时间)外码:员工编号,部门编号
考勤(考勤月份,员工编号,加班时间,请假天数,迟到次数,早退次数,缺勤次数) 外码:员工编号
在职员工工资(员工编号,工资月份,根本工资,工龄补贴,绩效工资,考勤赏罚,个人所得税,五险一金,实发工资,发放状态)外码:员工编号
退休员工工资(员工编号,工资月份,在职月均工资,基础养老金,个人账户养老金,实发工资,发放状态) 外码:员工编号
3.2存储过程和触发器的设计
在录入员工工资时,应由体系根据考勤表中的考勤情况和考勤赏罚规则主动计算出员工在考勤奖罚方面的工资,从而创建赏罚存储函数。根据入职年份和补贴规则来计算员工的工龄补贴,从而创建工龄补贴的存储函数。根据个人专项附加扣除项目和员工的税前工资来计算员工的个人所得税,从而创建税收存储函数。
在在职员工工资表插入或修改数据前,应根据管理员所输入的员工编号,工资月份,基础工资和绩效工资,分别调用赏罚存储函数来计算员工的考勤赏罚,调用员工工龄的存储函数来计算员工工龄补贴,调用税收存储函数来计算员工的个人所得税,根据公式来计算员工的五险一金,并综合计算出应发工资,从而创建触发器。在退休员工工资表插入或修改数据前,应根据管理员所输入的员工编号,工资月份,在职月均工资来计算出基础养老金、个人账户养老金和实发工资并填入表中,从而创建触发器。
第四节 物理结构设计
员工信息表(employee)如下表所示:
表 11 员工信息表
字段名
| 数据范例
| 寄义
| 是否允许为null
| 说明
|
eid
| varchar(11)
| 员工编号
| 否
| 主码
|
ename
| varchar(11)
| 姓名
| 否
|
|
sex
| varchar(11)
| 性别
| 否
| 取值:男或女
|
birthday
| Date
| 出生日期
| 否
| (1945-01-01,
2003-01-01)
|
phone
| varchar(11)
| 接洽方式
| 否
| 规定尺度11位且唯一
|
intime
| Date
| 入职时间
| 否
|
|
outtime
| Date
| 退休时间
| 是
| 默认为空
|
state
| varchar(11)
| 任职状态
| 否
| 取值:在职或退休
|
个人专项附加扣除项目表(items)如下表所示:
表 12 个人专项附加扣除项目表
字段名
| 数据范例
| 寄义
| 是否允许为null
| 说明
|
eid
| varchar(11)
| 员工编号
| 否
| 主码
|
pro1
| double
| 子女教育
| 否
| 默认为零
|
pro2
| double
| 继续教育
| 否
| 默认为零
|
pro3
| double
| 贷款利息
| 否
| 默认为零
|
pro4
| double
| 租房
| 否
| 默认为零
|
pro5
| double
| 赡养老人
| 否
| 默认为零
|
pro6
| double
| 大病医疗
| 否
| 默认为零
|
部门表(department)如下表所示:
表 13 部门表
字段名
| 数据范例
| 寄义
| 是否允许为null
| 说明
|
did
| varchar(11)
| 部门编号
| 否
| 主码
|
dname
| varchar(11)
| 部门名
| 否
|
|
address
| varchar(11)
| 部门地点
| 否
|
|
任职表(job)如下表所示:
表 14 任职表
字段名
| 数据范例
| 寄义
| 是否允许为null
| 说明
|
eid
| varchar(11)
| 员工编号
| 否
| 主码
|
did
| varchar(11)
| 部门编号
| 否
|
|
zhicheng
| varchar
| 职称
| 否
| 默认:平凡员工
|
rtime
| Date
| 任职时间
| 是
|
|
月考勤表(attendance)如下表所示:
表 15 月考勤表
字段名
| 数据范例
| 寄义
| 是否允许为null
| 说明
|
k_month
| varchar(11)
| 考勤月份
| 否
| 主码
|
eid
| varchar(11)
| 员工编号
| 否
| 主码
|
over_hour
| int
| 加班时间
| 否
| 默认为零
|
leave_day
| int
| 请假天数
| 否
| 默认为零
|
late_time
| int
| 迟到次数
| 否
| 默认为零
|
early_time
| int
| 早退次数
| 否
| 默认为零
|
absent_time
| int
| 缺勤次数
| 否
| 默认为零
|
在职员工工资表(salary1)如下表所示:
表 16 在职员工工资表
字段名
| 数据范例
| 寄义
| 是否为空
| 说明
|
eid
| varchar(11)
| 员工编号
| 否
| 主码
|
gmonth
| varchar(11)
| 工资月份
| 否
| 主码
|
basic_pay
| double
| 根本工资
| 否
| 默认为零
|
seniority_pay
| double
| 工龄补贴
| 否
| 默认为零
|
jixiao_pay
| double
| 绩效工资
| 否
| 默认为零
|
kaoqin_pay
| double
| 考勤赏罚
| 否
| 默认为零
|
tax
| double
| 个人所得税
| 否
| 默认为零
|
wuxian
| double
| 五险一金
| 否
| 默认为零
|
shifa_pay
| double
| 实发工资
| 否
| 默认为零
|
gstate
| varchar(11)
| 发放状态
| 否
| 取值:已发或未发
|
退休员工工资表(salary2)如下表所示:
表 17 退休员工工资表
字段名
| 数据范例
| 寄义
| 是否为空
| 说明
|
eid
| varchar(11)
| 员工编号
| 否
| 主码
|
tmonth
| varchar(11)
| 工资月份
| 否
| 主码
|
av_pay
| double
| 在职月均工资
| 否
| 默认为零
|
basic_yl
| double
| 基础养老金
| 否
| 默认为零
|
person_yl
| double
| 个人账户养老金
| 否
| 默认为零
|
shifa_yl
| double
| 实发工资
| 否
| 默认为零
|
tstate
| varchar(11)
| 发放状态
| 否
| 取值:已发或未发
|
第五节 数据库实施
5.1 创建根本表
创建工资管理体系数据库(gzgl):
图 9 创建数据库图
创建员工表(employee):
图 10 创建员工表图 创建个人专项附加扣除项目表(items):
图 11 创建个人专项附加扣除项目表图 创建部门表(department):
图 12创建部门表图 创建任职表(job):
图 13 创建任职表图 创建月考勤表(attendance):
图 14 创建任职表图 创建在职员工工资表(salary1):
图 15 创建在职员工工资表图 创建退休员工工资表(salary2)
图 16 创建退休员工工资表图
5.2 插入测试数据
插入数据:
图 17 员工数据图 图 18部门数据图
图 19员工任职数据图
图 20 月考勤数据图
图 21 items表数据图
图 22 salary1表数据图 图 23 salary2表数据图
5.3 创建业务处理的存储过程并测试
创建赏罚存储函数jiangcheng(),根据月考勤表考勤情况和考勤赏罚规则来计算员工在考勤奖罚方面的工资。
图 24 赏罚存储函数创建图 测试:运用赏罚存储函数来计算员工编号为2000020001日期为2023-11的考勤奖罚方面的工资。
图 25 赏罚存储函数测试图 创建员工工龄的存储函数gongling(),来根据入职年份计算工龄,运用工龄补贴规则来计算员工的工龄方面的工资。
图 26 员工工龄的存储函数创建图 测试:运用员工工龄的存储函数,来计算员工编号为2000020001本年的工龄补贴方面的工资。
图 27 员工工龄的存储函数测试图 创建税收存储函数tax(),来计算员工的个人所得税。调用此存储函数需有根本工资等输入,故与下面的触发器tr_s一同测试。
图 28 税收存储函数创建图
5.4 创建业务处理的视图并测试
创建视图salary1_view,用来直观显示出在职员工工资表的信息。
图 29 salary1_view视图创建图 测试:用视图salary1_view查询员工编号为2000020001的工资情况
图 30 视图salary1_view测试图 创建视图salary2_view,用来直观显示出退休员工工资表的信息。
图 31 视图salary2_view创建图 测试:用视图salary2_view查询员工编号为1980010001的工资情况。
图 32 视图salary2_view测试图
5.5 创建业务处理的触发器并测试
创建触发器tr_s,在表salary1插入数据前,根据管理员所输入的员工编号,工资月份,基础工资和绩效工资,分别调用赏罚存储函数jiangcheng()来计算员工的考勤赏罚,调用员工工龄的存储函数gongling()来计算员工工龄补贴,调用税收存储函数tax()来计算员工的个人所得税,根据公式来计算员工的五险一金,并综合计算出应发工资。
图 33 触发器tr_s创建图 测试:插入员工工资根本数据:
图 34 触发器tr_s数据插入测试图 查看员工工资:
图 35 触发器tr_s测试图 创建触发器tr_s1,在表salary2插入数据前,根据管理员所输入的员工编号,工资月份,在职月均工资来计算出基础养老金、个人账户养老金和实发工资并填入表中。
图 36 触发器tr_s1创建图 图 37 触发器tr_s1数据插入图 图 38 触发器tr_s1测试图
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) |
Powered by Discuz! X3.4 |