我正在使用Python/Django,但这更多的是关于“数据模型”和我如何与信息交互——我真的只是想知道我是不是疯了。
我正在公司开发一个小型应用程序(约55名员工),可以跟踪可用的休假/病假时间。部分目的是将“自助服务”整合到我们的内部网中,以便员工能够以电子方式提交“请假申请”,而不是填写和向人力资源部提交书面申请。
显然,这个应用程序需要保持每个员工的运行平衡,并将验证员工是否有足够的假期来满足他们的要求。
和财务/会计软件一样,我知道我不一定要存储浮动值,或者仅仅保持一个运行平衡。
我的想法是使用如下数据库表结构来存储时间“credits”和“debits”:
Employee | Year | Credit/Debit | Amount | Timestamp
“年”将是贷方/借方所属的年份,因为休假和病假是每年处理的,而不是按每个员工的流动余额处理。
为了确定员工的可用休假/病假时间,我将获取该员工在给定年份的“交易”,并找到余额。
我知道我漏掉了很多信息,但我想知道:这似乎是一个合理的方法来解决这个问题,因为它需要非常准确,还是我完全把这个复杂化了?

最佳答案

如果你认为你的解决方案很复杂,那就不是。将病假日建模为与员工关联的帐户是一个非常好的主意,而且非常容易。
在最简单的情况下,您可以有一个“transactions”表和一个“account”表,这样从年初重新运行所有事务(对于每个帐户)将得到一个与余额完全匹配的总和。
交易
ID |帐户|增量|时间戳
帐户
ID |姓名|员工|年度|余额
这些交易提供了审计跟踪,余额为您的下一笔交易提供了参考点。通过确保二者的匹配,您已经确保了一致性(不过,不一定是正确的——这必须通过对每种交易类型(即存款、取款)的单元测试来检查)
我推荐一个“Transaction Detail”表,它引用Transactions.I d,并包含所有您想要的好东西,比如谁发起的、注释等。

07-27 22:45