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