我正在構建活動日曆。基本功能如下:如何優化事件日曆的數據模型?
每天有3個狀態,「可用」,「不可用」和「需要確認」。每天都可以設置爲單一狀態(即事件)。每個事件可以設置爲每週或每月重複發生,或者根本不發生。
每個日曆都是特定於某個對象的(每個對象都有其自己的日曆)。
日曆沒有「結束日期」:在將來的任何給定日期都可能有事件。
我想象中的數據模型是這樣的:
Table: Calendar
id
user_id
Table: Status
id
label
Table: Event
id
calendar_id
start_date
status_id
recurring -- enum type: NULL, W, or M for weekly or monthly
這似乎是存儲數據的相當優雅的方式,但我很擔心檢索:這將是相當複雜的,以獲得地位給定的一天。
有沒有更好的或標準的方法來做到這一點?
作爲地位是不是一個可爲空的布爾是否足夠?或者你想保留稍後添加不同狀態的可能性嗎? – 2011-01-10 14:57:53