宴会でテーブルシートを選択するための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. Neo4Jグラフデータベースのデータの上書きを防止する
- 2. Access 2007での偶発的なデータの上書きの防止
- 3. Mongooseの文書への同時アクセスの防止
- 4. Imageviewsの同時クリックを防止する
- 5. 同時のajaxリクエストの防止
- 6. 同時ユーザーセッションの防止ASP.NETコア
- 7. Laravel Joins - 同じ列のすべてのデータを表示し、上書きを防止します。
- 8. 異なるユーザーからの複数の同時投票の防止
- 9. Artifactoryを使用したデプロイメントの上書きの防止
- 10. MySQLバイナリログ書き込みトランザクションの防止 - Bitnami
- 11. 防止ユーザーは
- 12. 防止ユーザーは
- 13. 防止ユーザー
- 14. RESTサービス:ユーザーあたりの同時呼び出しを防止する
- 15. Safariで承認ヘッダーを防止/上書きする方法は?
- 16. Firebaseデータベースの同時データ書き込み
- 17. 防止上書き()またはsave.image()を保存使用して
- 18. 登録の辞書ユーザー名を防止する
- 19. 防止ユーザー `ウェブapplication`
- 20. シリアライズとシリアライズ解除時にオブジェクトの書き換えを防止する
- 21. javafxの同じユーザーからの同時ログインを防ぐ
- 22. クリック時のコードミラーコピーの防止
- 23. MySQLのトリガー:IF文による挿入の防止
- 24. チェックボックスコントロールのアニメーションの一時停止/防止
- 25. どのようにしてes6で関数の上書きを防止するのですか?
- 26. スプリングセッション - セッションの同時変更を防止する
- 27. 同時にテーブルにデータを挿入するのを防ぐ
- 28. Firebaseセキュリティ防止の保存データその他ユーザー
- 29. SQL Server sysadminユーザーの書き込みアクセスを防止するにはどうすればよいですか?
- 30. Unity3D、Glass Shader、浮き上がり防止
+1この解決策は機能します。しかし、4席を予約しようとしている場合は、利用可能な席が十分にある限り、利用可能な席の数が変更されているかどうかは実際には気にしないので、 'AND AvailableSeats> = 4'とします。この更新プログラムはレコードを排他的にロックするため、他のクエリでレコードを選択することはできません。これは並行性の問題を解決します。影響を受けた行の数を確認して、シートを正常に予約したかどうかを確認します。 –