0

我有以下三個表
時期Repeate Parent列

-------------------------------- 
ID StartDate EndDate  Type 
-------------------------------- 
1 2013-01-01 2013-01-01 D 
2 2013-01-02 2013-01-02 D 

出席

--------------------------------------------------- 
ID PeriodID UploadedBy uploadDateTime Approved 
-------------------------------------------------- 
1  1  25   2013-01-01-11:00 1 
2  1  54   2013-01-01-10:00 1 

出席詳細

--------------------------------------------- 
ID EmployeeID AttendanceTime Status AttendanceID 
--------------------------------------------- 
1  24  2013-01-01 09:05 CheckIn 1 
1  28  2013-01-01 09:08 CheckOut 2 

考勤數據通過生物機械加工生成的CSV文件填寫。 Attendancedetail可能會隨着時間的推移而分組,因爲每位員工每天有多次簽到。每個期間的出席率都被批准period

Qustion

我需要每個段的基礎考勤數據。我知道我可以通過joins來實現這個目標。但我必須在AttendenceTime上使用between過濾器。我正在考慮在AttendenceDetail表中添加PeriodID以簡化查詢和未來性能問題。我應該去找它還是有更好的解決方案

回答

0

如果您經常需要每個期間的考勤細節,所以您通常需要加入三個表格,但考勤數據(來自考勤表格)對您而言並不重要那麼出勤詳細信息表中的PeriodID將幫助您確定。

即使您需要全部三個表格,PeriodID上的Where條件也會縮小考勤詳細信息的行數,因此它在性能方面將有所幫助。

也許它可能有點煩人,以保持一個不完全標準化的模式,但如果它不是一個大麻煩,這不會影響你的寫作表現去參加詳細的PeriodID。您的選擇將感謝您:)

+0

數據完整性如何?他必須確保他總是將它們全部更新到一起,否則他們有可能失去同步。 – cdmckay