如何为预订房间动态数据建模 open/close 次

How to data-model dynamic open/close times for booking a room

这是我的第一个 post。我一直在寻找最好的方法来做到这一点,但没有取得太大的成功,所以我决定在这里 post。

我有一个数据库模型,将用于在综合大楼中预订房间。这些房间需要有开放和关闭时间,以确定何时可以预订。例如,一个房间可能从早上 8 点到晚上 10 点开放,而另一个房间可能从上午 10 点到下午 5 点开放,依此类推。

其中一个要求,也是我坚持的部分,是房间的 open/close 时间需要根据类似于 "season" 的时间段进行更改,但这个时间段与季节不同,由管理员手动设置。

因此,从 1 月 11 日到 3 月 28 日,特定房间可能会在上午 10 点到下午 5 点开放,但从 3 月 29 日到 7 月 17 日,它可能会在上午 8 点到晚上 7 点开放。

我猜我需要另一个 table 或两个来存储 "time periods" 以及那些时段房间的 open/close 时间。

任何人都可以指出正确的方向或给我举个例子吗?

谢谢。

这在很大程度上取决于您的应用程序的逻辑,但在最简单的情况下,您可以将其保存在以下结构的附加 table 中:

room_id INT
period_from DATE
period_to DATE
open_from INT
open_to INT

您可以 select 房间在特定日期的开放时间,使用:

SELECT open_from, open_to 
FROM intervals
WHERE room_id = 4 AND period_from > '2015-08-19' AND period_to < '2015-08-19'

注意 添加新时段时,您应该验证给定房间的时段不相交。