python - 以编程方式管理 'balance' 时间(生病/休假)

标签 python django database-design date time

我正在使用 Python/Django,但这更多的是关于“数据模型”以及我如何与信息交互——我真的只是想知道我是不是疯了。

我正在为我的公司(约 55 名员工)开发一个小应用程序,该应用程序将跟踪可用的休假/病假时间。部分目的是将“自助服务”集成到我们的内部网中,以便员工可以通过电子方式提交“休假申请”,而不是填写并向 HR 提交纸质文件。

显然,此应用程序需要为每个员工保持运行余额,并将验证员工是否有足够的假期来满足他们的任何要求。

就像财务/会计软件一样,我知道我不一定要存储浮点值,或者只保持一个运行余额。

我的想法是使用像下面这样的数据库表结构来存储时间“贷方”和“借方”:

雇员 |年份 |贷记/借记 |金额 |时间戳

“年”将是贷方/借方所属的年份,因为休假和病假时间是按年处理的,不是每个员工的运行余额。

为了确定员工可用的休假/病假时间,我将获取员工在给定年份的“交易”,并找到余额。

我知道我遗漏了很多信息,但我想知道:这是否是解决此问题的合理方法,因为它需要非常准确,或者我是不是完全把这个复杂化了?

最佳答案

如果您认为您的解决方案很复杂,其实并不复杂。将病假/假期建模为与员工相关联的帐户是一个非常好的主意,而且非常容易。

在最简单的情况下,您可以有一个“交易”表和一个“账户”表,这样从年初重新运行所有交易(对于每个账户)将产生一个完全匹配的总和余额。

Transactions

ID | Account | Delta | Timestamp

Account

ID | Name | Employee | Year | Balance

交易提供审计线索,余额为您的下一笔交易提供引用点。通过确保两者匹配,您已经确保了一致性(尽管不一定是正确的 - 必须通过对每种类型的交易进行单元测试来检查,即存款,取款)

我推荐一个引用 Transactions.ID 的“交易详细信息”表,其中包括您想要的所有好东西,例如发起者、注释等。

关于python - 以编程方式管理 'balance' 时间(生病/休假),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3585428/

相关文章:

MySql/PHP - 设计我的第一个数据库。需要评论

python - 用 Pillow 阅读的 Gif 有黑色边框

python - django 1.8 -'ResultView' 对象没有属性 'method'

python - 根据其他列中包含的字符串为列分配条件值

python - 是否有任何应用程序可以实时可视化 Django 应用程序中表和数据库之间的数据流?

python - 如何在 Django 应用程序中包含自定义模块

sql - 在数据库中存储标签的最佳方式?

php - 如何在MYSQL中存储用户购买?

Python Markdown nl2br 扩展

python - vim:使用 python 的 omnifunc 错误完成代码