PHP でのオンライン Web アプリケーションの開発に取り組んでいます。旅行会社の座席指定システムに関するシステムです。ツアー コードのリストを含む選択ボックスを含む予約フォームがあります。ユーザーがツアー コードを選択すると、そのツアー コードで現在利用可能な座席数が Ajax リクエストによって取得されます。この後、ユーザーは予約が必要な座席数を選択し、その人数の詳細をフォームに入力してフォームを送信します。
このシステムはオンラインであるため、次のような状況が発生する可能性があります。
ユーザー 1 とユーザー 2 は、ツアー A の座席を予約しようとしてログインしました。tourAは10席のみご用意しております。ユーザー 1 は 7 席の予約を希望し、ユーザー 2 は 5 席の予約を希望しています。どちらも予約フォームのリンクをクリックし、両方とも利用可能な座席数を 10 として取得しています。フォームが少し長いため、どちらもフォームへの入力を開始しました。どちらも、入力速度に応じて、フォームに入力して送信するのにかかる時間が異なります。どちらのユーザーも、必要な数の座席を予約できると考えています。しかし、どちらもわずかな時間差でフォームを送信しましたが、userB が最初に送信したと見なした方が予約を取得し、もう一方の userA は、それぞれの座席数が利用できないというエラー メッセージを受け取ります。
上記のような状態を回避するにはどうすればよいですか?リアルタイム予約システムの背後にある論理フローが必要です。誰でも私にこれとphpでこれを達成する方法を説明してください。
ユーザーが座席数を選択するとすぐに考えています。ajax を使用して、この利用可能な座席数を維持するデータベース テーブルのフィールドを更新し、そのセッションの座席数を予約します。ただし、ここでは、ユーザーが座席を選択してフォームの入力を開始した場合に、何らかの理由で予約フォームを送信しなかった場合に問題が発生する可能性があります。データベースから必要な数の座席を削除しましたが、予約手順はそうではありません。ユーザーによって完了します。したがって、これを元に戻す方法とテーブルを更新した後、座席を予約したい他のユーザーは、座席数が利用できないことを気に入っており、それらはなくなり、再度確認することはありません. この旅行会社のビジネスがダウンする可能性があります。
座席を予約するには、すべてのユーザーがアプリケーションにログインする必要があることに注意してください。
この質問を宿題として見つけたかもしれませんが、ここでは確固たる論理的な解決策はありません. これで私を導き、上記のような状況を克服するためのシステムの論理的な流れを説明してください。参考までに、PHP の簡単なコード例を誰かが持っている場合は、それも役に立ちます。
肯定的な返事を期待する
ありがとう!