PHP mysql を使用して請求書番号を生成しています。
私の一意の ID は、「vend/year/id/order_no」という形式になります。ここで、
vend は文字列です
年は現在の年です
ID は vendor_id です
order no is : 他のテーブル(注文テーブル)から vender_id で注文をカウントし、1 ずつ増やします。
ユーザーが「注文」Webページを開くと、ユーザーがフォームに入力してフォームを送信する前に、この生成されたIDを表示する必要があるため、最初にIDを生成する必要がありますが、挿入されません。
ユーザーが 2 つのタブで Web ページを開くと、ロジックに従って、両方の Web ページに同じ ID が表示されます。しかし、ユーザーが両方のフォームを送信しようとすると、最初の送信は一意の制約に従って受け入れられ、2 番目のクエリは失敗しますが、それは望ましくありません。これはベンダー ベースの作業であり、10 万人のユーザーがそのテーブルにアクセスするため、テーブルにロックを作成できません。また、彼が 2 つのタブで Web ページを開くのを止めることもできません。これを維持する最良の方法は何ですか。