0

我在创建工资管理系统时遇到了一点麻烦。以下是我对系统的一些疑问,如果您能提供帮助:

员工的工资由各种工资组成部分组成。每个工资组件都有 3 个与之关联的规则,一个计算规则(将组件计算为另一个组件的百分比,或一个固定数字或固定数字的百分比),一个资格规则(员工/部门是否有资格获得一个组件)和限制组件的最大值和最小值的约束规则。每个公司都应该能够为每个组件定义自己的规则。如何做到这一点?

这些规则是可编辑的,并且可以由用户编辑。在这种情况下,我如何保留以前的值,以便更改不会影响我过去的值?

如何存储每个员工每个月的工资信息。我现在可以计算一个月的薪水,但是将其与 year_id、month_id、emp_id、sal_id 等一起存储在数据库中非常繁琐。还有其他方法吗?

4

1 回答 1

2

这些规则是可编辑的,并且可以由用户编辑。在这种情况下,我如何保留以前的值,以便更改不会影响我过去的值?

将您计算的值与定义和执行计算的子系统分开存储。

你实际所做的——你支付了谁,支付了多少,在什么日期——需要与系统的动态部分安全隔离。(这意味着您需要将其存储在单独的表中。)当它被隔离时,

  • 很容易审核,
  • 动态部分的更改不可能影响工资单历史记录,
  • 可以完全替换或删除动态部分,而不会影响工资单历史记录。

如何存储每个员工每个月的工资信息。我现在可以计算一个月的薪水,但是将其与 year_id、month_id、emp_id、sal_id 等一起存储在数据库中非常繁琐。还有其他方法吗?

如果您在键入“year_id”和“month_id”时没有爆炸,那么这个工资单项目不适合您。接受@sqlvogel 的建议,购买现成的系统。

于 2012-08-06T11:45:35.847 回答