2014-04-28 57 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子句從可用的預訂的房間獲得。此外,當您需要預訂房間時,如果實際可行,您可以查看可用性表。