- PR -

SQLサーバーのテーブル設計について

1
投稿者投稿内容
b-max
常連さん
会議室デビュー日: 2003/02/05
投稿数: 26
投稿日時: 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の売上金額を
#取得します。ほとんどの機能が売上テーブルを参照するという観点から見れば
#売上詳細テーブルを用意し、売上テーブルのレコード件数を減らすことが
#パフォーマンスにもつながって良いかと考えてます。

皆様のご意見やアドバイスをいただければ幸いです。


b-max
常連さん
会議室デビュー日: 2003/02/05
投稿数: 26
投稿日時: 2004-10-10 02:28
誤ってこちらへ投稿してしまました。
Database Expertへ再投稿しました。
1

スキルアップ/キャリアアップ(JOB@IT)