だから私は在庫情報を保持するデータベースを持っています。スタッフがその情報を更新すると、オンラインで番号が変更されると問題が発生するため、最後の人が番号を更新し、それをすべての値に使用します。
例: ジョーはクランベリーが 3 つ残っていることを更新し、まだ 3 のサラダに触れていません。しかし、ジョンはサラダが 0 であることを更新しました。ジョーが更新を押すと、サラダの値は 3 に戻されます。
この問題を解決する方法はありますか??
これは一般的な問題です。
あなたはできる:
問題の一部は、SQL の構築方法にあるようです。ユーザーがレコードの値を変更していない場合、そのレコードに新たに書き込みを行うべきではありません。
トランザクションを使用すると、プロセスが開始されてから値が変更されたかどうかを確認できます。これにより、結果に応じて、トランザクションをコミットまたはロールバックできます。
たとえば、ユーザー A が 5 つの利用可能なサラダのうち 3 つをチェックアウトするとします。ユーザー A がこのプロセスを完了する前に、ユーザー B は 5 つの利用可能なサラダのうち 3 つもチェックアウトしようとします。トランザクションを使用すると、トランザクションをコミットする前に、トランザクションを完了するのに十分なサラダが残っていることを確認するロジックを提供できます。チェックが失敗した場合は、トランザクションをロールバックできます。これにより、トランザクションが開始されたときに利用可能なサラダが 5 つあることがディスプレイに示されていても、ユーザー B が利用可能なサラダをチェックアウトするのを防ぐことができます。