これは、「プログラミング」に関する質問ではなく (言語やデータベースに固有のものではありません)、設計とアーキテクチャに関する質問です。また、「X を実行する最善の方法は何か」というタイプの問題でもあります。多くの「宗教的」論争を引き起こさないことを願っています。
過去に、何らかの形でアイテムの在庫を保持するシステムを開発しました (どのアイテムとは関係ありません)。トランザクションをサポートしない言語/DB を使用しているものもあります。そのような場合、アイテム レコードのフィールドに手持ちのアイテムの数量を保存しないことにしました。代わりに、手持ちの数量は、受け取った在庫の合計 - 販売された在庫の合計で計算されます。これにより、ソフトウェアによる在庫のバラツキがほとんどなくなりました。テーブルは適切にインデックス化されており、パフォーマンスは良好です。レコード開始量がパフォーマンスに影響する場合に備えて、アーカイブ プロセスがあります。
さて、数年前にこの会社で働き始め、在庫を追跡するシステムを継承しました。ただし、数量はフィールドに保存されます。エントリーが登録されると、アイテムの数量フィールドに受け取った数量が追加されます。アイテムが販売されると、数量が差し引かれます。これにより、不一致が生じました。私の意見では、これは正しいアプローチではありませんが、ここにいる以前のプログラマーはそう断言しています。
そのようなシステムを設計する正しい方法についてコンセンサスがあるかどうかを知りたいです。また、これに関するガイダンスを求めるために、印刷物またはオンラインで利用できるリソースは何か。
ありがとう