我正在构建活动日历。基本功能如下:如何优化事件日历的数据模型?
每天有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