データベースに車を格納するテーブルがあります。次に、私のシステムには、データベース内の車のドロップダウン リストがあります (ドロップダウンの要素: Car A,Car B,Car C )。ユーザー A が車 B を選択した場合、他のユーザーがログインしたときに車 B を選択できなくなるとします。私の質問は、車をもう選択できないようにする方法は? 参考になるページはありますか?選択後にドロップダウンリストの要素を削除する方法は? 意味がわからない場合は、お気軽にお尋ねください。前もって感謝します。
4 に答える
データベーステーブルにはIsReserved(または同様のもの)という名前のフィールドが必要です。そうすると、ドロップダウンリストに次のクエリが入力されます。
SELECT * FROM Car Where IsReserved=0
ユーザーがドロップダウンから車を選択したとき に、または一緒に保存できる別の一時テーブルを作成することをお勧めします(アイテムを選択するとイベントを発生させることができます)CarID
CarCode
sessionID
このイベントでは、carIDとSessionIDを一時テーブルに保存します
テーブル構造
CarTempTable
CarID xxx
SessionID varchar(x)
Date datetime
このテーブルにCarIDとSessionIDが含まれると、次のようなクエリを使用して他のユーザーのメインテーブルにクエリを実行できます。
SELECT CarID, CarName FROM Cars WHERE CarID NOT IN (SELECT CarID FROM CarTempTable WHERE SessionID <> "'+ SessionIDofUSER+'";
上記のアプローチでは、セッション終了時に特定のセッションの一時テーブルエントリをクリアする必要があります。
このアプローチはあなたのために働くはずです
編集:レンタカーの場合は、ユーザーが車を予約したかどうかに基づいて、車が利用可能かどうかを示す追加の列をテーブルに含めるとよいでしょう。あなたが予約をどのように取るかわからないので、あなたは上記の臨時雇用者のテーブルでこれを使うことができますそれは支払いまたは他の手段によるものですか
データベースでは、ブール値を含む Isselected のフィールドを維持できると思います。ユーザーがその車の更新データベースを値 true で選択した場合。ドロップダウンメニューをロードするとき、Isselected = false の車を選択します
私がすることは、利用可能な車のリストを制御するために ajax を使用することです。ユーザーが車を選択したときに情報を「プッシュ」することが可能です。
流れは次のようになります。
- ユーザーAは「日産アルティマ」を選択
- Ajaxを介して情報がサーバーに送信されます
- サーバーは、ユーザー A と「Nissan Altima」の間の関連付けを保存します。
- サーバーは情報をユーザー B に「プッシュ」します。
- ユーザー B の画面が更新され、リストが更新されます
Comet を使用して、あるユーザーから別のユーザーへの ajax の「プッシュ」を実現できます。