mysql时钟_员工时钟的MySQL数据库结构

我正在开发一款部分属于员工时钟的应用程序.这不是太复杂,但我想确保我第一次朝正确的方向前进.我目前有这个表结构:

id - int

employee_id - int (fk)

timestamp - mysql timestamp

event_code - int (1 for clock in, 0 for clock out)

如果他们的最后一次活动是“时钟进入”,我只能看到“时钟输出”按钮,反之亦然.

我的问题是,我们需要运行一份报告,显示员工一个月内工作的小时数以及当前会计年度(自当年6月1日起)的总小时数.

似乎我可以在同一记录中存储时钟,甚至可以计算两个事件之间的工作时间,并将其存储在名为“工作”的列中.然后,我只需要获得该员工所有列的总和,以了解总共有多少时间.

我应该保留我所拥有的结构,每对时钟进出事件移动到一排,还是有更好的方式让我完全失踪?

我知道人为错误对于时钟来说也是一个大问题,因为人们常常忘记输入或输出,我不确定哪种结构可以更容易处理.

MySQL时间戳是一个很好的选择还是我应该使用UNIX时间戳?

感谢您的任何建议/指示.

丰富

最佳答案 我会选择两张桌子:

>一个表应该是发生事件的简单日志,就像您现有的设计一样.

>第二个表包含计算的工作时间.有登录和退出时间的列,也许还有第三列,它们之间的时间差预先计算.

关键是,正如您所提到的,计算员工工作的小时数很复杂.员工可能会抱怨他们的工作时间比您的计划报告长.在这种情况下,您希望能够访问所有事件的原始日志而不会丢失信息,以便您可以查看和调试发生的事件.但是这种原始格式很慢并且难以在SQL中使用,因此出于报告目的,您还需要第二个表,以便您可以快速生成包含每周,每月或每年总和的报告.

Is MySQL Timestamp a good option or should I use UNIX Timestamp?

时间戳很好,因为有很多MySQL函数可以很好地处理时间戳.您可能还需要考虑使用与timestamp非常相似的datetime.

有关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值