[pgsql-jp: 30521] Re: テーブルの構成について

T.Suzuki t_suzuki @ kenwood-eng.co.jp
2003年 7月 18日 (金) 16:15:50 JST


鈴木@KEGと申します。

js さん wrote:
> 1万足らずなので削除しなくても大して問題ないんですが季節や特売によって同じ
商
> 品でも
> 原価が違う事があるんです。

あつみさんが書かれているように、特売(値引き)や変動する原価は、明細に持つ
のが楽だと思います。
 ( 売上明細を格納するテーブル2 = 〜、販売原価、値引き )

商品マスタの原価は固定として、販売時の原価と値引きを行った情報を
売上明細に保存しておくと、売上明細の集計が簡潔になります。

> 1月の売上原価と3月の売上原価は違っているのに何故同じ利益率になるのか!?
> と質問受けることもあります。もう、うぅぅ・・・としか言えないのですが・・・
例えば、利益率は上の”販売原価”を使用すれば正しく求まりますよね。

欠点は、”顧客毎の値引き一覧”や”商品毎の原価推移”といった問い合わせでは
複雑になる点です…

正しい正規形はあっても、正解の構成は無いっていう結論が常ですので、
ご自身の業務を分析した上で、判断するのが良いと思います。


----以下、参考になるかどうか、私が経験した情報です。

履歴情報を持った”原価マスタ”を作った事がありますが、
 ( 原価マスタ = 商品コード、原価、期間開始、期間終了 )
結合が複雑になり、問い合わせに苦労する結果になりました。

話題は逸れますが、まさしくこのケースに似た問題が、
平成14年度のアプリケーションエンジニアの試験問題に出ていたと記憶しています。
#特売や、値引きを持ったデータベースの構成が問題に使用してありました。
#試験問題集&解答がやくに立つかもしれません。
 -----------------------------------------
      鈴木 徹 (SUZUKI Toru)
      KENWOOD ENGINEERING CORPORATION
      E-mail:t_suzuki @ kenwood-eng.co.jp
 -----------------------------------------




pgsql-jp メーリングリストの案内