『ドラえもんプラス生活』その1007
金額を持つのは冗長ではない。トランザクション系のファイルに数量、単価を持つ場合、金額は冗長だと言われる。数量と単価で求まる数字を項目として持つ必要はないからだ。しかし本当にそうだろうか。単価が円ならばそうだろう。しかし単価に銭の単位まで持っている細かい部品などだとしたら、単純に金額は求まらない。円未満の取引は仮想的にしか出来ず、現実社会の支払方法は1円単位だからだ。端数を切り捨てるのか、四捨五入するのか、切り上げるのか、奇数偶数によってどちらかにまるめるのか。これはビジネスルールに従うしかない。
全ての検索時にビジネスルールを適応するより、結果を格納しておいて単純に検索取得するほうが簡単だし、人間が生データを見たときにも金額が分かりやすい。このことから金額という項目はテーブル設計において排除すべきではない項目である。
以上DB管理人からの意見。