2008-10-11 22 views
4

什麼是存儲重複的時間窗口優選的方法是什麼?
例如。如果我有一個日曆系統,我需要能夠適應每天,每週或每月的週期性事件,那麼什麼樣的時間管理系統最適合?

如何在數據庫中這個最能代表?如何存儲週期性時間窗口

更多詳細信息
這樣做的具體目標是提供套的開放時間窗口。一旦我們有了這些時間窗口,代碼就需要測試一個到達系統的消息是否屬於其中一個時間窗口。

回答

1

這是拖延已久,但許多測試和許多心痛之後,我們決定對某個方案,使這項工作。爲了我們系統的需要,我們只需要每週重複一次。最終產品將被設計成這樣。

這裏是DB模式

id : int(10) 
window_name : varchar(100) 
start_date : datetime 
end_date : datetime 
start_time : time 
duration : int(10) 
timezone: varchar(100) 
monday : tinyint(1) 
tuesday : tinyint(1) 
... 
sunday : tinyint(1) 
  1. 每一個「窗口」的時間將有一組開始日期,結束日期,開始時間和持續時間。
  2. 窗口將在開始日期的打開和啓動時間和運行「持續時間」秒
  3. 窗口將只打開指定的星期幾

這將允許Windows的唯一系統每週重複打開和關閉,並且還有可能跨越第二天早上的窗戶。我相信有更復雜的系統可以實現循環窗口,但我們正在尋找靈活而快速的方法,並且不需要每月重複發生的事件或每年的事件。

1

我會創造條件,保持記錄復發的每種類型的日曆系統支持的RecurrenceType表。 CalendarEvents表中的每個事件都將具有對RecurrenceType表中的ID的引用。

我將不得不在將舉行當計算下一個日期將被給定當前或起始日期或檢索接下來的N個日期爲陣列的業務邏輯的代碼RecurrenceRules對象。

大多數復發邏輯很可能是編碼關閉它是基於RecurrenceType表的ID枚舉值。除非是非常簡單的日曆系統,否則我會驚訝的發現,如果您可以將其全部數據驅動出來,

希望有所幫助。這聽起來像一個有趣的項目。

相關問題