程序化管理时间(病假/假期)余额
我正在使用Python/Django,不过这更多是关于“数据模型”和我如何处理信息的问题——我只是想知道我是不是疯了。
我在公司(大约55名员工)做一个小应用,目的是记录员工的假期和病假时间。这个应用的一部分功能是让员工可以在公司内部网上提交“请假申请”,而不是填写纸质表格交给人力资源部。
显然,这个应用需要为每位员工保持一个实时的假期余额,并且要验证员工申请的假期是否足够。
就像财务软件一样,我知道不应该仅仅存储浮动值,或者只保持一个单一的余额。
我的想法是使用一个数据库表结构,像这样来存储时间的“增加”和“减少”:
员工 | 年 | 增加/减少 | 金额 | 时间戳
‘年’是指这个增加或减少属于哪一年,因为假期和病假是按年计算的,而不是按每个员工的实时余额。
为了确定员工可用的假期和病假时间,我会获取该员工在特定年份的“交易记录”,然后计算余额。
我知道我省略了很多信息,但我想问:这样做是否合理,因为这需要非常准确,还是我在把事情搞得太复杂了?
4 个回答
我也觉得这是个不错的开始。
我没有看到任何关于批准或拒绝的选项。如果这个应用是给人力资源部使用的,那么他们的决定也需要在你的模型中体现出来。
如果人力资源部不参与这个过程(我不太相信,但也有可能),那么就没必要这样做;这个应用可以记录请假请求和剩余假期,直接告诉用户请求是否有效。不过我怀疑事情不会这么简单。:)
这看起来是个不错的开始。有几点需要注意:
系统会在年初自动生成信用记录,而借记记录则由员工创建。是否需要一个字段来标明是谁或什么创建了这笔交易呢?
你们有没有办法来说明请求的请假类型是什么?我不知道你们公司是怎样的,但有些公司对假期和病假是有不同的处理方式的。还有照顾者假、因亲属去世而请的假、法定假日、宗教假日等等。你明白我的意思吧?也许你想让不同类型的请假对应不同的信用额度。有些组织就是这样做的。你打算跟踪这些不同的请假代码吗?如果你觉得将来可能会成为问题,是否应该提前考虑一下呢?
如果你觉得自己的解决方案很复杂,其实并不是。把病假和休假日当作和员工关联的账户来处理,这个想法非常好,而且其实很简单。
在最简单的情况下,你可以有一个“交易”表和一个“账户”表,这样从年初开始重新运行所有交易(针对每个账户)后,得到的总和就会和余额完全一致。
交易
ID | 账户 | 变化值 | 时间戳
账户
ID | 名称 | 员工 | 年 | 余额
交易记录提供了一条审计线索,而余额则为你的下一笔交易提供了参考点。通过确保这两者相符,你就保证了一致性(不过,这并不一定意味着正确性——这需要通过单元测试来检查每种交易类型,比如存款和取款)。
我建议再加一个“交易详情”表,引用交易表的ID,并包括你想要的所有信息,比如谁发起的、备注等等。