【发布时间】:2012-10-05 15:35:10
【问题描述】:
我正在使用 MySQL 和 PHP 编写活动日历。
我已经设置了一个包含日期和时间的表格,并且日历运行良好。我必须为多个房间制作一个活动日历,所以我想我必须为每个添加到数据库的新房间创建一个表。
考虑到我的日历以半小时为间隔,我的索引列是这样的:2010-1-1 00:00:00、2010-1-1 00:30:00、2010-1-1 01:00:00 等等,大约 25 年后的未来。还有另一列包含事件 ID。
我认为每次添加房间时都会花费太多时间和空间,因为必须创建一个新的 HUGE 表。有没有更简单的方法?
【问题讨论】:
-
事件是否适合 1 30 分钟的间隔,或者它们是否跨越多个间隔?
-
它们可以适应多个 30 分钟的间隔,例如,如果我添加一个持续 3 小时的事件,则需要 5 行。例如。 00:00:00 - 00:30:00 - 01:00:00 - 01:30:00 - 02:00:00 - 02:30:00。
-
我觉得这种做法很麻烦。为什么不为事件创建一个开始/结束日期时间戳?您可以在适当的日期查询和放置事件,同时将日历的其余部分呈现为空白。为什么需要提前生成间隔?
-
房间可以有多个事件,事件将有一个event_id,room_id,title,start_date,end_date等。您可以一次查询拉出1个房间的所有事件,如果需要,按天分组等。
-
是的,我的想法是,我必须在那些日期检查“房间”是否忙,所以它们之间的事件不会重叠,我明白你的想法,我不是在 DB 方面非常有经验。所以,如果你对此有任何建议。我很乐意阅读它。
标签: mysql database datetime calendar