簡體   English   中英

在線酒店預訂系統,同步預訂?

[英]Online Hotel Booking System, Simultaneous Booking?

我被要求創建一個在線支付的在線預訂系統,我想知道在2個客戶同時預訂同一房間的情況下該怎么辦。

例如:
與此同時:

客戶1和客戶2預訂了標准間,只有1間客房。 (房間可用性將顯示仍有1個房間可用)。 然后他們同時點擊“確認”按鈕。

使用鎖定構造(在這種情況下可能在數據庫級別),以確保一次只能進行一次確認。 如果可能出現這樣的競爭條件,你應該總是這樣做。 通過這種方式,您將始終知道誰是第一個,並且您可以告訴其他用戶他們太慢而無法確認。

您可能想要添加的另一件事是付款時間限制。 在許多系統中,當您確認某些內容時,您將有一定的時間來支付預訂費用。 如果您未在該時間內付款,確認將過期,房間將再次可用。

有幾種方法可以解決這個問題。

  1. 如果我的用戶選擇了一個房間,請暫時將其從網絡前端刪除。 然后任何后來的訪客將無法選擇該房間進行預訂。 如果第一個用戶未完成交易,則房間再次可用。
  2. 如上所述鎖定數據庫,因此任何時候都只能寫入一條記錄

使用“臨時”系統將預訂標記為臨時,例如10分鍾。 然后,這些插槽將無法用於后續請求。 如果預訂未在時間范圍內完成,則該插槽將再次釋放。 如果您在預訂插槽之前獲取所有客戶詳細信息,則輟學率應保持較低。

您必須將時間框架和“臨時狀態”告知預訂者。 如果你有后續階段,訪問者可以停止,那么一個簡單的JS計時器倒計時將有所幫助,並推動預訂者沿着這個過程。

或者,允許雙重預訂,直到第一次出現時按下最后的“付費”按鈕。 第二種方法轉換得更好,第一種方法更“正確”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM