私のWebアプリケーション(POS)は、複数の支店での販売を処理します。各セールには一意の整数IDがあります。ブランチ1の一部の販売IDはnであり、ブランチ2の次の販売はn +1です。
支店がインターネット接続を失うと、販売情報をブラウザの内部データベースに保存します。ここで、販売IDは最後の販売IDに1を加えたものです。接続が復元されたら、その情報をサーバーに送信してから、実際のデータベースに保存します。
悪夢は、2つ以上のブランチがインターネット接続を失うときに発生します。彼らがオフラインで販売を行い、インターネットが再開すると、サーバーは同じIDで2つの販売を受け取ることになります。これは、顧客のチケットがすでに印刷されているため、恐ろしいことです。
今のところ、各販売IDを、支店IDとその支店の実際の販売番号から組み合わせて作成する予定です。したがって、ブランチ1の販売IDは1-1になり、ブランチ2からの次の販売は2-1になります。ブランチに2つのPOSができるまでは良さそうですが、そうではありませんが、将来性はあまりありません。
最善のアプローチは何だと思いますか?これを行うためのより良い方法はありますか?