2012-04-26 12 views
0

私は約30列のTeradataでテーブルを設計しています。これらの列は、毎日、毎月、毎週などのいくつかの時間間隔スタイルの値を格納する必要があります。実際の文字列値をテーブルに格納することは、データの冗長な反復となるため、設計上好ましくありません。代わりに、私がやりたいことはプリミティブルックアップテーブルを作成することです。この表には、毎日、毎月、毎週が保持され、TeradataのID列を使用して主キーが導出されます。この主キーは、外部キーとして作成しているテーブルに格納されます。Teradata:多くの外部キー列で正規化するテーブルを設計する方法は?

私の知る必要があるのは、Webフォームのドロップダウンリストに値を入力するときに知っておく必要があるためです。しかし、私たちが使用する他のアプリケーションでは、レポートを実行するか、フィードを通じてこのデータを受け取る必要があります。したがって、実際に毎日、毎月、毎週を返すことができるように、このテーブルをプリミティブテーブルに結合するビューを作成する必要があります。

私の懸念はパフォーマンスです。私はそのような大量の外部キーフィールドを持つテーブルを作成したことはなく、Teradataにはかなり新しいです。私がこのすべてを難しい方法で見つけ出すという長い道のりを歩む前に、私は自分の目標を達成する最善の方法を得ることができるアドバイスをしたいと思います。

編集:このルックアップテーブルは無関係なプリミティブの偽装であると付け加えておきます。これは、既に上述したように時間間隔に関する値のグループを含むが、24x7および8x5などの時間フレームも含む。

ID Type   Value 
--- ------------ ------------ 
1 Interval  Daily 
2 Interval  Monthly 
3 Interval  Weekly 
4 TimeFrame 24x7 
5 TimeFrame 8x5

編集パート2:テーブルはこのように設計されるこの質問へのより多くの露出を得るために新しいタグを追加しました。

答えて

2

あなたがしたことはうまくいくはずです。明らかに、実際のクエリを実行し、必要に応じて統計を収集する必要があります。私がお勧めすることができます

ことの一つは、そのようなルックアップテーブルに追加の行を持つことです。

ID Type   Value 
--- ------------ ------------ 
0 Unknown  Unknown 

そして、メインテーブルには、代わりにヌルなどのフィールドを有していると、あなたは彼らに0の値を与えるだろうこれにより、外部ジョインの代わりに内部ジョインを使用できるようになり、パフォーマンスに役立ちます。

+0

私の開発で別のルートを行ったので、この質問を放棄しました。あなたの提案を試みたことはありませんが、この質問を削除することはできませんし、永遠に未回答のままにしておくこともできないので、マークしています。 – oscilatingcretin

関連する問題