资源调度逻辑

时间:2014-04-28 05:56:40

标签: sql database database-design

我预定了很少的预订资源。以下是我的逻辑

样品:

我将Delux(2)和Classic(1)房间安排一年。所以我要插入1095条记录(730 + 365-每个资源每天一行)。

数据库:  表(SID,SDATE,ROOMID,STATUS)

对于特定日期,我要检查状态为“可用”的日程安排计数。并允许预订。

逻辑正确吗?或任何其他减少记录插入次数的逻辑?(注意:每天的资源数量可能会有所不同)

2 个答案:

答案 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子句从可用的房间中减去预订房间而获得的。此外,当您需要预订房间时,如果确实可以,您可以查看空房情况表。