2014-01-15 26 views
0

考慮具有多個房間類型(例如單人,雙人,雙人,家庭)和多個房間的酒店。每個房間可以是多種房型的組合(例如,一個特定房間可以是雙人房/雙牀房)。邏輯實現:當資源可以屬於多種類型時,按資源類型確定可用性

我面臨的問題是如何根據已預訂的房間來確定房間的可用性。考慮一個酒店,擁有2間客房:

  • 單人/雙人
  • 雙人/家庭

我們有一個基本的可用性:

  • 單:1
  • 雙:2
  • 家庭:1

(是的,好像有四個房間,但只要可用性> 1,它可以分配,這就是我的工作,現在的前提下)

這樣,我可以出售任何房間組合,並且只有當房間可用性櫃檯打到零時纔會影響其他房間。例如。我可以出售一間雙人房,但仍然可以選擇單人房或家庭房。只有當另一個房間出售時,一切都會關閉。

到目前爲止,一切都很好。

除了當我想出多個S/D房間(例如兩個或更多)並單獨銷售它們(例如單個,然後雙倍)時,計數器不會達到0(所以我不能使用它作爲關閉其他房間的觸發器),但我已經售出了酒店擁有的實際房間的最大數量。

很明顯,我的方法中存在一些問題,我如何確定可用的方法,如果此問題已經解決,我將非常感謝任何指針(現在爲僞代碼,我將轉換爲MySQL/PHP一旦我有了它的頭)。

感謝

+0

你是說你只是遞減櫃檯對應客戶的要求?當你將一個S/D房間賣給一個要求D房間的顧客時,你需要減少S和D的櫃檯。 – svk

+0

現在是,是的。我意識到這是唯一的出路。我幾乎可以使用分組函數工作,但是在那裏停留在...... – JamShady

回答

0

我設法通過SQL最終解決這個問題。

我的預訂表包含room_type_id和room_id。根據是否分配房間,我可以直接使用room_type_id加入數據透視表,然後加入room_types表或room_types表。然後,我只需SUM()1爲每個元組感謝返回正確的數量,當你最後由room_type.id分組。

相關問題