我正在建立一個使用FullCalendar作爲前端的日曆系統。後端將是MySQL/PHP。iCal後端 - 重複日期
它將存儲由應用程序生成和插入的用戶的公共約會列表。這些約會將是一個單一的事件,將在同一天開始和結束。此外,由於個人的承諾,用戶將能夠在日曆中標記他們的可用性。後者的功能需要使用循環事件。而不是重新發明輪子,我一直在尋找使用基於iCal的結構。這篇文章在確定數據庫結構時非常有幫助ical-field-list-for-database-schema-based-on-ical-standard。
我已經創建了申請表,允許用戶輸入必要的數據以存儲私人單一/定期預約。提交表單後,數據通過Ajax發送到服務器。我發現了一個很棒的PHP腳本,它可以根據用戶輸入的參數生成一個重複日期數組,無論是以其原生格式還是使用RRULE。
我不確定什麼是存儲/檢索這些重複日期的最佳方式。應用程序需要能夠爲用戶呈現日曆視圖,包括公共和私人日期。應用程序還需要能夠返回例如所有在特定時間/日期期間可以空閒的用戶。
是否足夠存儲iCal格式的所有事件,並且能夠根據需要檢索事件?我預見到的問題是重複事件不容易搜索,因爲它們的參數將不得不在飛行中擴展?我正在考慮創建每個單獨事件的第二張表格(如生成的),並返回到創建它的原始RRULE。我希望限制用戶可能輸入的重複日期的數量,以防止用戶在接下來的100年內每天都進入活動!我認爲這種方法也會讓我編輯最初由循環規則創建的單個事件。
這是一個好方法,還是有更好的方法?
我曾經搜索過這個網站,但沒有找到這個鏈接頁面,其中包含很多有用的信息 - 謝謝。我認爲2表的方法是正確的,一個是rrule,它反過來產生一個事件表。我將不得不考慮永無止境(或長時間運行)的事件,以及是否限制它們,或者定期擴展它(可能在cron作業上)。日曆不僅僅是爲創建它的用戶提供的,而是需要被查詢來查找系統的「空閒時隙」,所以我將需要爲所有涵蓋相關時間範圍的用戶全面擴展rrule(s) S)。 – Dave 2012-05-06 17:35:29