1

我需要创建一个员工轮班数据库。所以到目前为止我有 3 个表,员工、员工班次和班次

我想计算一个员工在月底做了多少班次,我的问题是,因为一个月有 30 天,有些有 28 天和 31 天。

这意味着我需要在班次表中创建 31 个不同的变体?每个月的每一天一个?为了计算哪个员工工作得最多?

在我的业务关系中,它说员工每天有 1 或 2 个班次,因此我必须有 60 行不同的变化吗?我是对的,或者有没有简单的方法来解决它

4

3 回答 3

0
  1. 您不能将数据插入 TimeStamp 列。改用时间。
  2. 您不能将 Emp_Id 和 Shift_Id 作为主键,因为这会重复。如果您确实需要主键,请添加另一列,例如 Shift_Record_Id。

就创建脚本而言,它应该很简单。您所需要的只是找出一个逻辑并阅读我们可以在其中使用的选择语句和可用关键字。

于 2010-04-25T18:14:18.023 回答
0

我会使用三个这样的表:

Employee - EmployeeId, EmployeeName etc.
ShiftRecords - ShiftRecordId, EmployeeId, InTime, OutTime
Shift - ShiftId, ShiftStartTime, ShiftEndTime

如果轮班时间可能会发生变化,您可以在轮班表中包括轮班开始日期和结束日期以及 IsActive 列。

于 2010-04-25T15:49:54.827 回答
0

我也会坚持三个表,Employee、Shifts 和 Employee_InOut。最后一个表将包含日期、时间和时间的列。上班时间和下班时间将是找出员工正在轮班的关键。所以我可以只计算一个月的轮班次数以及员工的轮班详细信息。这会很简单。

于 2010-04-25T15:37:20.610 回答