我想在應用程序的日期/時間顯示中顯示重複事件。此日期時間顯示可以採用日曆的形式,但也可以是即將發生的事件的列表。如何跟蹤C#/ SQL Server中的重複日曆事件?
處理跟蹤可重複發生的事件的最佳方法是什麼?
例如:事件應該在數據庫中存儲一次,並在顯示代碼中投影/重複多次?事件應該存儲多次,然後才呈現?
我想在應用程序的日期/時間顯示中顯示重複事件。此日期時間顯示可以採用日曆的形式,但也可以是即將發生的事件的列表。如何跟蹤C#/ SQL Server中的重複日曆事件?
處理跟蹤可重複發生的事件的最佳方法是什麼?
例如:事件應該在數據庫中存儲一次,並在顯示代碼中投影/重複多次?事件應該存儲多次,然後才呈現?
我之前做過類似的事情,並且我的架構脫離了SQL Server sysschedules表。
http://technet.microsoft.com/en-us/library/ms178644.aspx
以上鍊接的模式將允許你存儲的日程安排工作(事件)。然後,您可以根據時間表計算事件發生的日期。這可能是一個冗長的計算,所以我會嘗試在某處緩存結果。
我認爲這取決於事件類型。它是否像聖誕節一旦出現,並且在下一次出現之前發生,你真的不感興趣?還是像「每個月都要給媽媽打電話」這樣的任務,如果發生了,你錯過了它,你不希望它消失?
我最近實施後者的一種方法是創建一個有next_occurrence(日期),reoccurence_period(每週,每月,每年等)列的記錄。因此,下一次發生的事情會在列表中顯示出來。一旦它通過了列表項目,將有一個回收圖標,一旦按下就會將記錄更新到未來的下一次發生。
再一次,我不確定這是否適用於您的情況,但它對我的工作很好。
我不確定是否從本網站獲得此鏈接。無論如何,Martin Fowler在他的網站上討論過這個問題。