1

従業員シフトデータベースを作成する必要があります。これまでに、employee、employee_shift、shiftの3つのテーブルがあります。

従業員が月末に行ったシフトの数を計算するとします。私の質問は、月には30日があるため、28日と31日がある場合もあるということです。

これは、シフトテーブルに31の異なるバリエーションを作成する必要があることを意味しますか?月の各日に1つ?どの従業員が最も働いたかを計算するために?

私のビジネス関係では、従業員は1日に1または2シフトしていると書かれているので、60の異なる行のバリエーションが必要ですか?私は正しいですか、それを解決する簡単な方法はありますか

4

3 に答える 3

0

また、Employee、Shifts、Employee_InOutの3つのテーブルに固執します。最後のテーブルには、日付、時間内、および時間外の列があります。時間内と時間外は、従業員が行っているシフトを見つけるための鍵となります。したがって、1か月間の従業員のシフトの詳細とともに、シフトの数を数えることができます。簡単になります。

于 2010-04-25T15:37:20.610 に答える
0

私はこのような3つのテーブルを使用します:

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

シフト時間が異なる可能性がある場合は、シフトテーブルのIsActive列にシフト開始日と終了日を含めることができます。

于 2010-04-25T15:49:54.827 に答える
0
  1. TimeStamp列にデータを挿入することはできません。代わりに時間を使用してください。
  2. Emp_IdとShift_Idを主キーとして使用することはできません。これは、繰り返されるためです。主キーが本当に必要な場合は、Shift_Record_Idという別の列を追加します。

スクリプトの作成に関する限り、それは単純でなければなりません。必要なのは、ロジックを理解し、その中で使用できるselectステートメントと使用可能なキーワードについて読むことだけです。

于 2010-04-25T18:14:18.023 に答える