2012-03-08 36 views
4

我需要在我的數據庫中安排事件,任務,約會等。其中一些將是一次性約會,一些將重新發生必須檢查的「待辦事項」。看過谷歌的日曆佈局和其他人之後,再加上大量的閱讀是我目前爲止所做的。如何處理重複日曆事件和任務(SQL Server表和C#)

日曆表(可以稱爲日程表我猜):Basic_Event標題,開始/結束,reoccurs信息。

日曆出現表:與日程表,出現特定文本,下一個出現日期/時間的關係

看看SQL Server如何完成它的工作:http://technet.microsoft.com/en-us/library/ms178644.aspx 但這略有不同。

爲什麼有兩個表格:我需要跟蹤重複執行任務的每個實例的狀態。否則,這將是更簡單...

所以...到的問題:

1)這個問題似乎像正確的方式去嗎?有沒有更好的方法來處理多發事件?
2)我多頻繁/如何觸發創建事件?我真的不想創建一堆事件...但...如果用戶想要查看明年的日曆怎麼辦...

+0

任何帶有完整源代碼的最終解決方案? – Kiquenet 2013-12-29 10:50:21

回答

4

有意義的是在一個表中有一個任務的計劃定義,然後是一個單獨的表來分別記錄每個實例 - 這是我過去採取的方法。

關於創建事件,可能沒有必要事先創建它們。特別是當你考慮無限重複的任務!再一次,我過去使用的方法是隻創建下一個事件。當該實例被執行時,下一個實例將被計算並創建。

這留下了查看未來事件的問題。爲此,您可以從開始/下一個預定事件開始,並在顯示時間即時計算未來事件。

+0

感謝您的幫助。我喜歡只創建下一個事件的想法,然後隨時計算其餘事件。 – pStan 2012-03-09 15:18:02

0

雖然這不是一個確切的答案你的問題我已經通過對基於Unix's cron的解決方案進行建模,在SQL Server中解決了此問題(儘管此處的數據庫無關緊要)。

取代字符串解析,我們使用表中的整數列來存儲各種時間單位。

我們有可以安排的活動;他們可以指向代表不同時間點(日期/時間)的一次性日程表或者在cron之後建模的循環日程表。

另外記得正確地建模您的解決方案。一個事件有一個持續時間,但持續時間與時間表無關(但是一個事件的持續時間可能會通過引起衝突來影響時間表)。不要試圖將持續時間模擬爲日程安排的一部分。

0

在過去的時候,我們已經做到了這一點,我們有2個表:

1)時刻表 - >包括復發信息

2)異常 - >編輯/更改特定情況下

使用SQL,可以獲取在給定日期範圍內至少有一個實例的「計劃」列表。然後,您可以在每個實例所在的GUI中展開。