PHP / MySQL中事件日历的最佳方法

时间:2012-10-05 15:35:10

标签: mysql database datetime calendar

我正在使用MySQL和PHP处理事件日历。

我已经设置了一个包含日期和时间的表格,日历工作得很好。我必须为多个房间制作一个活动日历,所以我想我必须为每个添加到数据库的新房间创建一个表格。

考虑到我的日历除以间隔半小时,我的索引列如下所示:2010-1-1 00:00:002010-1-1 00:30:002010-1-1 01:00:00等等,未来约25年。另外还有一个带有事件ID的列。

我认为每次添加房间都需要花费太多时间和空间,因为必须创建一个新的巨大表格。对此有更简单的方法吗?

1 个答案:

答案 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)

来返回有冲突的事件并将其显示给用户