-2

我正在使用 MySQL 和 PHP 编写活动日历。

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

考虑到我的日历是按半小时和一小时的间隔划分的,我的索引列是这样的:2010-1-1 00:00:002010-1-1 00:30:002010-1-1 01:00:00等等,大约 25 年后的未来。还有另一列带有事件 ID。

我认为每次添加一个房间都会花费太多时间和空间,因为必须创建一个新的 HUGE 表。有没有更简单的方法呢?

4

1 回答 1

0

如果您创建包含以下内容的事件表:

event_id, room_id, title, start_date(datetime), end_date(datetime)

然后,您可以检查房间 1 是否在上午 11:30 到下午 1:30 之间被占用:

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)

于 2012-10-05T16:06:52.573 回答