假設你更可能有興趣/使用當前的數據,只有在審計/偶爾使用舊的東西感興趣,我會用一個表去所有員工的「當前」數據集以及「歷史」數據集的表格。
每張表都有一個對員工的引用,以及開始日期時間和結束日期時間,以及他們記錄時間的「任務」(例如假期,疾病,公衆假期,項目a,項目b等)。
當您到達月末,數據變爲「鎖定」時,您可以將其從當前表格處理到歷史表格中,並執行任何您想要的操作。
這樣,您可以將當前表格保持爲您需要的最小數據,但也保留較舊數據的歷史記錄。
你可以看看使用SQL CDC和它的保留策略來做到這一點,並清除你不想要的數據。
或者你可以簡單地通過代碼在SQL中通過作業/ c#自己做。
當然,這是我們在我的公司使用企業級的時間管理項目似乎工作:)與存儲日曆等
問題的辦法是,你有效地建立了大量的數據,可能無法正常工作爲所有員工,所有的時間。 您需要爲這些邊緣情況創建單獨的日曆。您還必須提前幾年進行填充/確保在需要之前將其填充到下一年。 同樣,如果公司決定在短時間內關閉一兩天,會發生什麼情況?假設你在浴室裏發現石棉,所以他們必須關閉辦公室(或者半天辦公室)一天。您需要更新日曆表以反映該情況,否則當天所有人都會遇到例外情況。
您可以在Employee表中爲開始和結束時間分開一列。您可以將其存儲爲日期時間數據類型,並忽略日期元素(在您的應用程序中使用DateTime.Min作爲日期元素) – Matt