工资表设计

news/2024/12/29 2:43:00/

工资表

组织数据看似简单问题,如果设计的奇妙可以简化程序编程。

本能设计工资记录

当初我设计的工资表记录是根据用户提供的工资条进行设计,工资条设计如下:

姓名

实发

应发

基本资

扣税

请假扣

加班费

交通补

扣养老

扣失业

张三

 

 

 

 

 

 

 

 

 

 

而我的第一印象也就是设计了工资明细表Salary(表结构)

EmpID

S01

S02

S03

S99

 

 

 

 

 

 

 

 

 

 

 

工资项目表SalaryDefine(表定义)

ID

唯一Id

ColumnName

对应S1…S99

Column名称

汉字描述

Enabled

启用标记

 

这种设计也是常用设计,可以根据定义表动态启用工资字段,并能对工资字段进行描述,同时也很好理解。

存在的问题

从财务的角度分析,工资条其实是一个余额表,余额表式在没有效率和复杂逻辑的情况下可以不用真实的表来表示。

 

余额表表示存储的数据是合并的,不能反映真实的原貌,为此我们可能需要扩展表记录一些凭证记录,例如请假记录(请假的扣款项是由多条请假记录组成的)。这也就增加了复杂度。

 

余额表仅反映了数据的一个角度,随着角度的不同,余额表的设计可能就会不同,例如:合并扣养老=扣保险+扣失业,在这种情况下我们不但要加表,并且还要更改逻辑处理方式,这也就说明这种设计很难在底层提供稳定的支撑。由于业务的复杂化,可能有些记录需要和其他系统进行协助,这就更加重了不稳定性。

解决

余额是由凭证产生的,用凭证的概念来改造后的设计:

ID

唯一Id

SalaryDay

工资周期日

BllDay

业务发生日期(日期)

EmpId

用户ID

SalaryItem

工资项目(实发、应发、扣保险、扣、加…)

ForwardValue

正向记账金额

BackwardValue

反向记账金额

Key1,Key2

根据需要保存的现场值,例如:所在部门,级别,等等

Attend1,Attend2,

附加信息列,例如:单据编号(存储请假单、加班单的编号,用于追溯)

 

每条凭证记录都能详细并准确描述自己。

SalaryDay

BllDay

EmpID

SalaryItem

Dep

(Key1)

Forward

Value

Backward

Value

Voucher

(Attend1)

2009-9-26

2009-9-26

1

应发工资

开发部

5000

0

 

2009-9-26

2009-9-6

1

加班费

技术支持

100

0

JB0087

2009-9-26

2009-9-11

1

请假扣款

开发部

0

50

QJ0034

2009-9-26

2009-9-26

1

开发部

0

..

 

不论凭证产生在什么地方,都能正确表达,例如:发生人事调用,但请假单发生在“技术支持” 部门,凭证都能正确表达。如果单据需要产生多条凭证,这样的设计都能满足。

 

通过凭证记录,就可以产生各种需要的报表,例如工资单(工资单的项目不论怎么变化,本质是一个统计合计值并合并项)。

 

总之凭证记载的是企业的真实活动,只要合理的设计关键字,奠定好基础,统计也就简单并且容易。

 

 

转载于:https://www.cnblogs.com/rock_chen/archive/2009/09/26/1574515.html


http://www.ppmy.cn/news/526554.html

相关文章

Excel工资表通过宏的录制形成工资条形式

内容:工资表通过宏的录制形成工资条形式,设置快捷键,添加按钮指定宏,并且改进宏。 一 打开Excel,先点击左侧 文件-选项-自定义功能区 ,从左侧的下来菜单中选择开发工具,把开发工具添加到右侧自…

护眼颜色RGB设置

网上流行护眼色的RGB值和颜色代码 绿豆沙色能有效的减轻长时间用电脑的用眼疲劳! 色调:85,饱和度:123,亮度:205; RGB颜色红:199,绿:237,蓝&#x…

编辑器字体设置护眼背景色

Eclipse 修改字体 Window>preferences>general>appearance>colors and fonts>basic>Text Font 调整背景颜色 Window>preferences>general>appearance>Editors>TestEditors>Appearance color options>background color 色调85&am…

阅读PDF护眼模式颜色设置

在现在越来越多的电子书充斥着我们的工作与生活,默认模式情况下我们长时间的阅读使得眼睛易产生疲劳,对眼睛有害。其实我们可以开启PDF护眼模式,将阅读软件的背景颜色改为豆绿色,缓解眼睛疲劳。现在给出设置参数: 色调…

Word 2016 怎么设置护眼模式 页面颜色设置

操作方法: 首先我们在菜单栏中,点击上方的【设计】>【页面颜色】,在里面选择【其他颜色】。 绿豆沙 #C7EDCC RGB(199, 237, 204) 银河白 #FFFFFF RGB(255, 255, 255) 杏仁黄 #FAF9DE RGB(250, 249, 222) 秋叶褐 #FFF2E2 RGB(255, 242…

【夜深人静写数据结构与算法 | 第八篇】哈希算法与哈希表

目录 前言: 哈希: 哈希表: 哈希表组成: 哈希表实例: 哈希函数: TIPS: 总结 前言: 如果此时我要你默写一个有一百位的数字,你要如何做才能保证不会漏写呢&#xf…

ChatGPT的训练过程需要多长时间?

ChatGPT的训练过程是一个非常复杂和耗时的过程,需要大量的计算资源和时间来完成。下面将详细分析ChatGPT的训练过程及其所需的时间。 1. 数据收集和预处理阶段:在训练ChatGPT之前,需要收集和准备大规模的文本数据集作为训练样本。这个过程涉…

课程19:个人中心功能与提示优化

🚀前言 本文是《.Net Core从零学习搭建权限管理系统》教程专栏的课程(点击链接,跳转到专栏主页,欢迎订阅,持续更新…) 专栏介绍:以实战为线索,基于.Net 7 + REST + Vue、前后端分离,不依赖任何第三方框架,从零一步一步讲解权限管理系统搭建。 专栏适用于人群:We…