- - PR -
SQLサーバーのテーブル設計について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-10-10 02:17
[OSのVER]:Windows2000
[SQLServerのVER]:2000 現在業務系のテーブル設計を行っております。 各事業所の売上データを以下のKEY項目で集計を行い、格納します。 【売上テーブル】 PKEY 売上年月日 PKEY 事業所CD PKEY 区分 ・・・「0:当日」「1:当月内」「2:その他」 売上金額 【データ例】 20041010/A10A10/0/\1,000 ・・・売上実績が本日のもの(10/10) 20041010/A10A10/1/\2,000 ・・・売上実績が本日以外の当月内のも(10/05) 20041010/A10A10/2/\3,000 ・・・売上実績が当月でないもの(09/30、08/01) ↓ 仕様変更により以下のように対応を求められてます。 「その他月」を示す「区分:2」レコードの月ごとのサマリー結果が参照したい。 ↓ この要件を満たすべく、以下のように変更を入れました。 【売上テーブル】 PKEY 売上年月日 PKEY 事業所CD PKEY 区分 ・・・「0:当日」「1:当月内」「2:その他」 PKEY 年月 【データ例】 20041010/A10A10/0/200410/\1,000 ・・・売上実績が本日のもの(10/10) 20041010/A10A10/1/200410/\2,000 ・・・売上実績が本日以外の当月内のも(10/05) 20041010/A10A10/2/200409/\2,000 ・・・売上実績が当月でないもの(09/30、08/01) 20041010/A10A10/2/200408/\1,000 ・・・売上実績が当月でないもの(09/30、08/01) ****************************** ここで皆様へご質問。 上記のように「年月」項目を追加するのが良いのか、あるいは別テーブルを用意したほうが いいのかということです。年月が必要なパターンは「区分:2」のみであることを考えると 別テーブルの方がいいのかなぁーと悩んでおります。区分1or2にも、年月をセットする 必要があるのもちょっと?と考えてます。(業務上、必要ありません) ただPKEYなのでNULLや空白ではあまりよろしくないと考え年月をセットしてます。 別テーブルにした場合 ↓ ****************************** 【売上テーブル】 PKEY 売上年月日 PKEY 事業所CD PKEY 区分 ・・・「0:当日」「1:当月内」「2:その他」 売上金額 【売上詳細テーブル】・・・売上テーブルの区分2のレコードの詳細を保持 PKEY 売上年月日 PKEY 事業所CD PKEY 年月 売上金額 ****************************** #業務上、売上詳細テーブルを参照することは、1機能くらいです。 #多くの機能は、売上テーブルを参照し、売上テーブルの区分2の売上金額を #取得します。ほとんどの機能が売上テーブルを参照するという観点から見れば #売上詳細テーブルを用意し、売上テーブルのレコード件数を減らすことが #パフォーマンスにもつながって良いかと考えてます。 皆様のご意見やアドバイスをいただければ幸いです。 |
|
投稿日時: 2004-10-10 02:28
誤ってこちらへ投稿してしまました。
Database Expertへ再投稿しました。 |
1