【问题标题】:designing payroll system C# SQl Server设计薪资系统 C# SQl Server
【发布时间】:2012-08-06 08:21:00
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我认为我们无法为您设计系统...
  • 我不想为我设计系统。我已经这样做了。问题是它是静态的,而不是我想要的动态。这就是我卡住的地方
  • 这似乎是设计的基本部分,不是吗?
  • 您为什么要设计自己的工资系统?有数百种现成的解决方案可用,而成本只是自己发明和支持的一小部分。
  • @sqlvogel 这是一家非常小的公司,需要该系统。他们想要一个非常基本但定制的模型。我建议现成的,但没有一个对他们有用。

标签: c# sql-server-2008 database-design


【解决方案1】:

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

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

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

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

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

如果您在输入“year_id”和“month_id”时没有头晕目眩,那么这个工资单项目不适合您。听从@sqlvogel 的建议,购买现成的系统。

【讨论】:

  • 感谢您的建议。至于第二部分,我不是指 year_id、month_id ......我的意思是按年和月存储数据......对不起,这是我的一个巨大的打字错误。
猜你喜欢
  • 2020-04-28
  • 2015-12-12
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 2021-10-19
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多