2012-10-24 26 views
0

我之前問過這個問題,人們給了我一個解決我的問題,但現在我的問題有變化。在我的數據庫中有一個名爲rooms的表之前。它有一個hold字段,當某人正在預訂時,我會在將來爲該用戶保留15分鐘的時間。如果該用戶在15分鐘內未完成預訂,則該房間將再次可用。這是我以前的問題的解決方案。防止在線酒店預訂競賽狀態

但現在我不再有房間表了。我只有房型和預訂表。房間類型有房間名稱價格信息,當然還有id字段。預訂表中有checkin checkout roomtypeid和有關用戶的信息。由於我沒有房間表,我無法找到一種方法來防止多個用戶同時預訂單個房間。

我的問題是如何防止沒有房間表的競爭條件?如果問題不多,我希望解決方案只能是sql和php。 Here is a link to my previous question

編輯:我發現這篇文章,這就是爲什麼我沒有房間表了。 link

+1

聽起來您可以在預訂表中添加一項預約,並在15分鐘後過期。 –

+0

房間的桌子似乎是一個重要的桌子,以保持一切;你爲什麼要刪除它? –

+0

@Jack我刪除它,因爲我不再需要它。我還發現了一種更好的方法來跟蹤有多少房間可用,有多少房間不可用。 – khuderm

回答

1

您可以在保留表中添加一個臨時保留(帶有temp-flag /字段),如果保留在15分鐘後沒有完成,可以稍後刪除。

此外,如果有多個用戶試圖保留最後一個房間非常同時你應該再次檢查可用性保留通知用戶的每一步,最後的房間已做,並提出另一種roomtype等

+1

謝謝。經過很多想法,我最終添加了2個字段。一種是檢查預訂是否支付,另一種是檢查現在是否有人預訂房間。我在上一個問題中擔心的是,如果某人在中間留下了保留的話。這一切都得到了解決,並感謝你和像你這樣的人幫助其他人並回答他們的問題。 – khuderm