你好親愛的 我是PHP和JavaScript新手。我創建了一個使用PHP/JavaScript的預訂網站,但是當兩個人或兩個以上人選擇導致併發生產衝突的時間段(用於預訂)時,我遇到了問題。所以請幫助如何用PHP/JavaScript代碼解決這個問題。如何解決PHP衝突?
回答
你好,親愛的
你的問題是很常見的尤其是在預訂系統。您可以採取一些措施來解決此問題,但如果沒有首先查看代碼,任何人都無法發佈免費代碼,因此現在我們只需向您提供想法。
我會假設訪問者預訂一個我將稱之爲「座位」的隱私。
預訂座位
用戶希望預訂座位。將座位狀態設置爲保留。這將在其他用戶屏幕上顯示爲已預訂。預訂將在30分鐘內過期,因此訪問者不再需要它。儘管要小心這種濫用,但訪問者可以不斷地「保留」所有座位,阻止任何人購買門票。
先到先得
讓大家預訂座位,誰支付它首先它,然後其他人必須重新挑選座位。這個選項不是非常用戶友好的,但很容易實現。
@Tom Gullen:很好的答案,但是先到先得的服務是那麼容易?!如果過程A更新了表示「SEAT BOOKED」的DB行,並且過程B同時進行,他們都將預訂相同的座位。你使用SQL原子trasaction回滾?你可以解釋一下,這很有趣。 – 2010-08-24 13:12:13
在付款之前,您根本不會更改座位的狀態。付款完成後,在處理付款之前,請檢查是否已預訂,如果是,請重新選擇座位,如果沒有,請將其設置爲正在購買,然後處理付款。如果付款失敗,請將座位恢復爲免費。這會吸引人們可能需要重新啓動多次的流行事件。 – 2010-08-24 13:19:45
@Tom Gullen:對最後一條評論不能不同意。這正是我們在這裏面臨的問題。你怎麼能確定我們避免了這一點:進程A讀取行並看到「SEAT NOT BOOKED」,同時進程B(併發運行)執行相同的操作,並看到相同的「SEAT NOT BOOKED」,因此兩個進程都去打開並更新具有相同值「BOOKED」的同一DB行,現在兩名用戶已預訂相同的座位。重新排列DB行不能解決併發預訂問題。這就是我要求解釋的原因。 – 2010-08-24 13:33:44
- 1. Simperium如何解決衝突?
- 2. Github - 如何解決衝突
- 3. 如何解決.hgtags衝突?
- 4. 如何解決sqlplus衝突?
- 5. 如何解決jQuery衝突?
- 6. LibGit2Sharp如何解決衝突?
- 7. 衝突解決?
- 8. 解決衝突
- 9. 解決衝突
- 10. 解決衝突
- 11. 解決樹衝突
- 12. 與衝突解決
- 13. 解決JavaScript衝突
- 14. SymmetricDS - 衝突解決
- 15. 解決JQuery衝突
- 16. 解決衝突svn
- 17. 解決Javascript衝突
- 18. PouchDB +解決衝突
- 19. Subclipse衝突解決
- 20. 如何解決庫衝突(apache commons-codec)
- 21. 衝突的Python包如何解決?
- 22. jQuery我如何解決jQuery的衝突
- 23. 如何解決Django中的URL衝突?
- 24. 如何解決jQuery UI和TableGear衝突?
- 25. 如何解決這個Mercurial衝突?
- 26. 如何解決jQuery和mootoools衝突
- 27. antlr4 - 衝突的規則,如何解決
- 28. 如何解決排序規則衝突
- 29. 如何解決.NET DLL引用衝突?
- 30. 如何解決引導類名衝突
請向我們展示您的代碼! – DLH 2010-08-24 12:59:52
不明白爲什麼這個問題應該關閉,這是一個問題如何解決簡單預約系統中的數據衝突的措辭。 – 2010-08-24 13:03:22
@DLH:這不涉及更多的設計解決方案,而不是一個編碼解決方案(即使他要求代碼)。完整的代碼是否可以在幾行內處理? – 2010-08-24 13:08:28