2

私のストレージ データ モデルでは、次の関係が得られました。

root_tbl -- 1:n -- entry_tbl -- n:1 -- action_tbl

他にもいくつかのテーブルがありますが、これで基本をカバーできます。基本的に、ルート テーブルの 1 つの ID には、エントリ テーブルに複数のデータセットがあります。

サンプルデータ:

root_tbl:

ID_root ; Country ; FK_User ; FK_Product
      1 ;      UK ;      23 ;      31
      2 ;      NL ;      42 ;      01


entry_tbl:

ID_entry ; FK_root ; FK_Action ; Duration
       1 ;       1 ;        42 ; 200ms
       2 ;       1 ;        10 ; 94ms
       3 ;       1 ;         9 ; 300ms
       4 ;       2 ;        10 ; 322ms
       5 ;       2 ;        30 ; 100ms

ここまでは順調です...このデータモデルを使用すると、アクション「10」で国として「英国」を含むレコードの数などを簡単に答えることができます。このデータをファクト テーブルに入れたいのですが、問題はこれら 3 つのテーブルの関係です。たとえば、国、ユーザー、または製品をカウントするたびに ID で個別の選択を行う必要があるよりも、entry_tbl のレコードをファクトとして使用します。

ファクト テーブルは多かれ少なかれ次のようになります (文字列を外部キーとして想像してください)。

fact_tbl:

ID ; FK_Action ; Duration ; Country ; User ; Product
1  ;        42 ;    200ms ;      UK ;   23 ;      31
1  ;        10 ;     94ms ;      UK ;   23 ;      31
1  ;         9 ;    300ms ;      UK ;   23 ;      31
2  ;        10 ;    322ms ;      NL ;   42 ;      01
2  ;        30 ;    100ms ;      NL ;   42 ;      01

これは、冗長なデータがたくさんあることを意味します。

これらの解決策を回避する方法はありますか? ファクト テーブルには、300 ~ 500m の行が含まれます。

あなたが私の主張を理解してくれることを願っています。不明な点があればお気軽にお尋ねください

よろしくトーマス

4

1 に答える 1