宴会でテーブルシートを選択するためのphp/MYSQL Webサイトがあります。 10席が奪われたら、テーブルはもう利用できません。 2人以上の学生が同時に座席を予約するのを防ぐにはどうすればいいですか?& 3人まで同時に予約できますか? 2人の学生が同時に入場すると、同じテーブルで座席を予約しようとすると、データが壊れてしまったり、10人以上の座席が割り当てられたりする可能性があります。 2人目のユーザーが自分の選択を書く前に、テーブルの席を最初に予約しようとすると、データベースに書き込むことができます。どんな助けもありがとう。同時ユーザーによるMYSQLデータの上書きの防止
1
A
答えて
1
以前の読み取りから得た7
UPDATE Seating SET AvailableSeats = AvailableSeats - 4 WHERE TableId = 5 AND AvailableSeats = 7;
ような何かを行います。このアップデートが失敗した場合、その間に他の誰かが座席を割り当てられたことを知っています。
-1
予約をするコードを呼び出す直前に空きがあるかどうかを確認します。
if (functionToCheckAvailability(number_of_seats)) {
bookSeats(number_of_seats);
}
関連する問題
- 1. Access 2007での偶発的なデータの上書きの防止
- 2. 同時のajaxリクエストの防止
- 3. 異なるユーザーからの複数の同時投票の防止
- 4. Artifactoryを使用したデプロイメントの上書きの防止
- 5. Safariで承認ヘッダーを防止/上書きする方法は?
- 6. 防止上書き()またはsave.image()を保存使用して
- 7. シリアライズとシリアライズ解除時にオブジェクトの書き換えを防止する
- 8. 登録の辞書ユーザー名を防止する
- 9. 防止ユーザー `ウェブapplication`
- 10. 同時にテーブルにデータを挿入するのを防ぐ
- 11. SQL Server sysadminユーザーの書き込みアクセスを防止するにはどうすればよいですか?
- 12. ユーザーのクリックを防止する
- 13. HTML5ビデオとオーディオエレメントの同時再生の防止
- 14. Tomcatを使用して同じPCからの同時ユーザーセッションを防止する
- 15. コピーオンライトはアレイ上のデータ複製を防止しますか?
- 16. 2番目のユーザーのログイン時にContextSessionSecurityTokenが上書きされる
- 17. 例外時にWebSphere上でJava EEアプリケーションの起動を防止する
- 18. .htaccessの書き換えを防止する方法は?
- 19. がデータベースに入力同じデータにユーザーを防ぐため、ユーザーを防ぐために(アンドロイド)
- 20. cakephpは同時に複数の場所からのユーザーログインを防止します
- 21. rubyスクリプトによるSQLインジェクションの防止
- 22. WebKitによるナビゲーションの防止
- 23. ストアドプロシージャによるSQLインジェクションの防止
- 24. モバイルサイトによるエラスティックページスクロールの防止
- 25. 2人のユーザーが同時にファイルに書き込みますか? (PHP/file_put_contents)
- 26. シリアルモニタ接続時のリセット防止?
- 27. Windowsサービスでのデータ実行防止
- 28. 休止/ MySQLの同時実行の問題
- 29. 同時ファイル書き込み
- 30. 同時トランザクションからのRailsアプリケーションでのデータベースの重複挿入の防止
+1この解決策は機能します。しかし、4席を予約しようとしている場合は、利用可能な席が十分にある限り、利用可能な席の数が変更されているかどうかは実際には気にしないので、 'AND AvailableSeats> = 4'とします。この更新プログラムはレコードを排他的にロックするため、他のクエリでレコードを選択することはできません。これは並行性の問題を解決します。影響を受けた行の数を確認して、シートを正常に予約したかどうかを確認します。 –