2014-04-28 61 views
0

我必须安排一些预订资源。下面是我的逻辑资源调度逻辑

样品:

我已经安排多彩(2)和经典(1)机房一年。所以我插入了1095条记录(每个资源每天730 + 365-一行)。

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

对于特定的一天,我正在检查其具有的地位 '可用',并允许预订计划数。

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

回答

1

为什么不能使用START_DATE和END_DATE来代替SDATE来存储间隔?

对于特定的一天,您可以针对区间的START_DATE和END_DATE之间的时间间隔询问相同的状态。

更好的是只跟踪预定的时间间隔,其余的都是免费的。所以除了已经预定的间隔之外,所有房间都是免费的。

+0

我说资源数不是固定的。它可能每天都有所不同。例如:第29个5室和第30个7室。那我该怎么办? – balaji

+0

@StanislavL您网站上的所有电子邮件都已损坏且无法访问(至少来自mail.ru)。请更新您网站上的信息,了解如何与您建立联系。 –

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,..) 

每天可用房间数是通过未减去IN子句从可用的预订的房间获得。此外,当您需要预订房间时,如果实际可行,您可以查看可用性表。