0

問題を詳しく説明しましょう。
export というテーブルがあります。フィールドjob_noがあります。
ユーザーが来てこのクエリを実行すると、

select  max(job_no) as Last_Job from jobs

結果は、テーブルの最後のジョブ番号である A005 です。
PHP 側で、ユーザーが入力して送信するエントリ フォームに A006 を表示します。
フォームの job_no フィールドは読み取り専用で、ユーザーは変更できません。
ここで、複数のユーザーが同時にフォームに入力し、それぞれに A006 が表示され、フォームを送信するときに A006 がレコードと共に送信されると、問題が発生します。
これは重複しており、必須ではありません。
この状況を防ぐための解決策は何ですか。3つの解決策がありますが、より良い解決策があるかどうか知りたいです。

解決策 1
ユーザー ID を使用してジョブ番号を user_entry フォームに挿入し、それをユーザーに表示します。
次に、ユーザーがフォームを送信すると、フォームを更新します。
Draback は、ユーザーがフォームの送信をキャンセルした場合、job_no は役に立たないようです。

解決策 2
各ユーザーにジョブ番号を表示し、送信時にジョブ番号を確認してインクリメントし、ジョブ番号が既に割り当てられていることをユーザーに伝えて、次の番号が割り当てられるようにします。
ユーザーにプロンプ​​ト メッセージを表示しないと、ジョブ番号が A006 で、データベースでは A007 であるという印象を受けます。

また、setIntervalでajaxリクエストを実行すると、サーバーに負荷がかかり、重複する可能性があります。

これは、ジョブ番号をユーザーに表示するために必要です。では、この状況でのより良いアプローチは何ですか。または、この問題の代替手段はありますか?

4

1 に答える 1

1

ユーザーがフォームを作成する前に、なぜA006をユーザーに表示するのですか?とにかく変更できるというソリューション2を使用できる場合、それがどのように「要件」になるのかわかりません。

なぜあなたは彼らにフォームに記入してもらい、彼らが提出するときに「ありがとう-ジョブA006が作成されました」と言ってはいけません。シンプルで簡単

于 2012-06-29T11:34:39.577 に答える