数据库设计员工工作时间表

时间:2014-07-07 10:36:17

标签: sql postgresql date database-design schedule

我正在设计员工数据库。我想将他们的可用时间存储在接下来的3周内。这是我的要求。

  1. 员工标准工作时间在表格或字段中定义(大多数在9到5之间)
  2. 有些员工在不同的时段工作(如早上7点至3点)
  3. 有时员工可能会将工作时间分开(早上7点到11点,然后是5点到9点)
  4. 我想将这些存储在数据库中,以便我可以查看他们的日历并了解其可用性。这是我的设计。

    EmpID - int
    Date - Date
    StartTime - Time
    EndTime - Time
    

    表格样本

    EmpID | Date        | StartTime | EndTime
    -----------------------------------------
        1 |   8.12.2014 |      9:00 |   17:00
        2 |   9.12.2014 |      9:00 |   17:00
        2 |   9.12.2014 |      7:00 |   15:00
        1 |  10.12.2014 |      7:00 |   11:00
        1 |  10.12.2014 |     15:00 |   19:00
    

    此处员工2的默认时间为9到17.为每位员工提前3周创建默认条目。现在,对于2014年12月9日,员工2希望从7到15工作。在这种情况下,我将在表格中创建额外的条目,该条目将覆盖以前的计划。

    我提前3周为每位员工创建日历。

    问题

    1. 由于我提前3周为所有员工创建日历,因此对数据库负担很重。

    2. 这不是一种有效的方法。由于它士气低落,我将能够轻松获取细节,但很难维护。

    3. 请为我这种员工可用性问题建议一些好的数据库设计。

1 个答案:

答案 0 :(得分:2)

我认为这个数据库设计会起作用。虽然我需要提前填充数据,但可能会产生一些与数据相关的重复。但这将使检索更快,因为我的应用程序将经常检索日历数据。