1

私たちのチームは、本質的に社内で作成された ERP システムの在庫を追跡する必要があります。特定の倉庫にある特定のアイテムのシステム内の在庫量に頻繁にアクセスし、在庫がいつ変更されたかを追跡する必要があります。

最初に考えたのは、調整表だけを用意して、それを見るたびに現在の在庫を計算することでした。私たちのテストを通じて、この計算を毎日何回行うかを考えると、コストがかかりすぎることが明らかになりました.

私たちの新しいアイデアは、履歴を含む調整表を作成するだけでなく、現在の在庫が何であるかを示す表も保持することです。調整が行われると、プログラムは調整テーブルと現在の在庫テーブルの両方を同時に更新します。1 つの変更を行うには 2 つの更新が必要なため、このソリューションはあまり好きではありません。失敗したらどうしますか?調整が在庫テーブルの内容を反映していない場合、どのように調整しますか?

誰もがより良いアプローチを持っていますか?

4

1 に答える 1

2

1つのトランザクションで必要なすべての更新を実行できない場合は、データが正しいことを確認するための管理手順(宣言型の制約ではなく)が必要になります。たとえば、合計を詳細に対してテストするcronジョブを実行できます。これを実行する頻度は、cronジョブの実行にかかる時間と、アプリケーションが許容できるcronジョブの時間によって異なります。

詳細テーブルのトリガーと定期的なcronジョブが必要です。トリガーに各トランザクションの合計を調整させます。cronジョブは、更新が失われていないことを確認します。(ほとんどのdbmsを使用すると、メンテナンスのトリガーを無効にできます。cronジョブは、トリガーを再度有効にするのを必然的に忘れた場合に通知します。)

于 2013-01-07T17:05:54.767 に答える