2017-04-13 66 views
1

我正在爲員工創建計時應用程序。我只是想知道最好的方法是什麼。創建一個包含所有日期的表格,每月一次並處理它們,或者只存儲不同的日期。工作時間計時應用程序

正常時間表應該是星期一至星期五每天8小時,但可能會有不到8小時或更長時間的情況,加上星期六和星期日應該區別對待,此外所有這些數據都需要存儲這不是一次性的事情。 我的難題是我無法找到特定表格的最佳解決方案。我應該只存儲少於8個等特殊事件...此外,應用程序應考慮到國家法定節假日...

asp.net應用程序c#如果它有幫助,SQL和所有爵士樂。

+0

您可以在Employee表中爲開始和結束時間分開一列。您可以將其存儲爲日期時間數據類型,並忽略日期元素(在您的應用程序中使用DateTime.Min作爲日期元素) – Matt

回答

1

假設你更可能有興趣/使用當前的數據,只有在審計/偶爾使用舊的東西感興趣,我會用一個表去所有員工的「當前」數據集以及「歷史」數據集的表格。

每張表都有一個對員工的引用,以及開始日期時間和結束日期時間,以及他們記錄時間的「任務」(例如假期,疾病,公衆假期,項目a,項目b等)。

當您到達月末,數據變爲「鎖定」時,您可以將其從當前表格處理到歷史表格中,並執行任何您想要的操作。

這樣,您可以將當前表格保持爲您需要的最小數據,但也保留較舊數據的歷史記錄。

你可以看看使用SQL CDC和它的保留策略來做到這一點,並清除你不想要的數據。

或者你可以簡單地通過代碼在SQL中通過作業/ c#自己做。

當然,這是我們在我的公司使用企業級的時間管理項目似乎工作:)與存儲日曆等

問題的辦法是,你有效地建立了大量的數據,可能無法正常工作爲所有員工,所有的時間。 您需要爲這些邊緣情況創建單獨的日曆。您還必須提前幾年進行填充/確保在需要之前將其填充到下一年。 同樣,如果公司決定在短時間內關閉一兩天,會發生什麼情況?假設你在浴室裏發現石棉,所以他們必須關閉辦公室(或者半天辦公室)一天。您需要更新日曆表以反映該情況,否則當天所有人都會遇到例外情況。

1

幾年前我正在創建這樣的應用程序。 我有一個用作日曆的數據庫中的表。它有一個像場:

  • 日期
  • DAY_NAME(星期一,星期二,等等)
  • is_holiday(是這一天的節日 - 中,人們在這一天或無法正常工作 - 週日也有這個標誌設置真)
  • is_sathurday
  • is_sunday

而且夫妻多,但我不記得了。這是非常好的解決方案。不僅你知道假期是什麼時候,或者員工是否在週日工作,但你也可以爲員工建立日曆。

在安裝過程中(通過存儲過程)插入表,使用 - 據我記憶 - 高斯算法。

頂部日期是2030年到2040年

+0

並且您是否生成了所有日期?從「現在」到2030年?或者你是否分配了一個sql作業來在每個月的第15個月添加它們,例如 –

+0

或者你是否只存儲了其中的每一個 –

+0

我在安裝期間生成了所有日期。日期是由sql存儲過程產生的。所有日期從1950年到2030年或2040年。但你可能不需要這樣的時間。你可以從NOW生成2030或任何你想要的:) –

相關問題