我预定了很少的预订资源。以下是我的逻辑
样品:
我将Delux(2)和Classic(1)房间安排一年。所以我要插入1095条记录(730 + 365-每个资源每天一行)。
数据库: 表(SID,SDATE,ROOMID,STATUS)
对于特定日期,我要检查状态为“可用”的日程安排计数。并允许预订。
逻辑正确吗?或任何其他减少记录插入次数的逻辑?(注意:每天的资源数量可能会有所不同)
答案 0 :(得分:1)
为什么不能使用START_DATE和END_DATE而不是SDATE来存储间隔?
对于特定日期,您可以询问间隔时间为START_DATE到END_DATE之间的间隔的相同状态。
更好地跟踪预定的时间间隔,所有其余的都是免费的。所以所有房间都是免费的,除了已经预订的间隔。
答案 1 :(得分:0)
如果我正确理解了问题,那么您将获得一个可变资源池。假设这是从日期A到日期B的类型T的房间X的形式。 我会将其存储在“可用性”表中,因此您可以随时查看每天的总体可用性。如果你把它与StanislavL的答案结合起来,你会有两张桌子,一张可用房间,一张用于预订:
availability(availability_id,room_id,date_from,date_to)
booking(booking_id,room_id,date_from,date_to)
room(room_id,type,name,address,..)
每天可用房间的数量是通过NOT IN子句从可用的房间中减去预订房间而获得的。此外,当您需要预订房间时,如果确实可以,您可以查看空房情况表。