我正在使用MySQL和PHP处理事件日历。
我已经设置了一个包含日期和时间的表格,日历工作得很好。我必须为多个房间制作一个活动日历,所以我想我必须为每个添加到数据库的新房间创建一个表格。
考虑到我的日历除以间隔半小时,我的索引列如下所示:2010-1-1 00:00:00
,2010-1-1 00:30:00
,2010-1-1 01:00:00
等等,未来约25年。另外还有一个带有事件ID的列。
我认为每次添加房间都需要花费太多时间和空间,因为必须创建一个新的巨大表格。对此有更简单的方法吗?
答案 0 :(得分:0)
如果您创建包含以下内容的事件表:
event_id, room_id, title, start_date(datetime), end_date(datetime)
然后,您可以检查房间1是否在11:30 AM到1:30 PM范围内被占用,并且:
select count(event_id) from events where room_id = 1 and ((end_date > '2012-10-02 11:30:00')
AND (start_date < '2012-10-02 13:30:00'));
任何大于0的值表示此日期时间范围内房间1中的现有事件。或者,您可以选择*
而不是count(event_id)