我有一个数据库模型,用于预订复杂的房间。这些房间需要有开放和关闭时间,以确定何时可以预订。例如,一个房间可能从上午8点到晚上10点开放,但另一个房间可能从上午10点到下午5点开放等。
其中一个要求,以及我坚持的部分是,房间的开启/关闭时间需要根据类似于“季节”的时间段进行更改,但此时间段由管理员手动设置不像一个季节。
因此,从1月11日到3月28日,特定房间可能从上午10点到下午5点开放,但从3月29日到7月17日,可能会在上午8点到晚上7点开放。
我猜我需要另外一两张桌来存储“时间段”以及这些时段内房间的开启/关闭时间。
有人能指出我正确的方向或给我一个例子吗?
感谢。
答案 0 :(得分:0)
它高度依赖于应用程序的逻辑,但在最简单的情况下,您可以将其保存在以下结构的附加表中:
room_id INT
period_from DATE
period_to DATE
open_from INT
open_to INT
您可以使用以下方式选择特定日期的房间开放时间:
SELECT open_from, open_to
FROM intervals
WHERE room_id = 4 AND period_from > '2015-08-19' AND period_to < '2015-08-19'
注意当您添加新的期间时,您应该验证,某个时间段不会与给定的房间相交。