请教大佬如何设计排班系统数据库

新手上路,请多包涵

如题,想做一个排班系统模块,但是有点不知道怎么设计数据库。每人每天上班与否,上班时间都要定。是一人一天一行;还是31列(按月)一行;还是怎么设计,请教大佬,有点迷茫。

阅读 10.6k
4 个回答

排班记录表和排班员工表

排班表如下

排班ID 日期 班次开始时间 班次结束时间
1 2020-03-07 09:00 17:00

排班员工表

自增ID 排班ID 员工ID 上班时间 下班时间
1 1 1 08:59 17:01
这种设计灵活度比较大,支持一天多班次
值班记录id 日期 上班时间 值班员工id
1 2020/03/06 9:00-17:00 id1,id3
员工id 姓名
id1 张三
id2 李四
id3 王五

抛砖引玉

主键 员工id 日期 上班时间
自增id 123456 20200306 9:00-17:00

关键还是看你的应用,如果你要根绝上班开始和结束时间进行统计,那么把『上班时间』再拆成2个字段,『上班开始时间』和『结束时间』。以上记录的时候一个员工,粒度上最新,后面任何计算聚合都能做。数据量上会比较大,那你可以按照 月 来做分表,一个月一张统计表。当然你也可以用mongodb,这样就不需要考虑数据量的问题了

新手上路,请多包涵

多谢各位大佬给思路,我是现在设计的是能一次性排七天,有班次表和排班表,班次表里有休息的班次。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏