0

複合主キーexを持つディメンションテーブルがあります:

オペレーター:

centre
registreDuCommerce
libelleCentre
LibelleRegistreduCommerce

主キーは次のとおりです。centre, registreDuCommerce

そしてファクトテーブルは

MyFactTable :

col1
col2
col3
centre 
registreDuCommerce

センターとレジスターDuCommerce ?? center : 会社が設置されている都市のコードです registerreDuCommerce : 会社の識別子

そして、これらのキーは会社を特定するのに役立ちますregistreDuCommerce

ディメンション テーブルに複合主キーを含めることは不可能であることがわかったため、この問題を解決する理由はあります。

ありがとう

4

1 に答える 1

1

このような複合主キーを持つことはまれであるだけでなく、非合成主キー (おそらく日付を除く) を持つこともまれです。整数は、はるかに従来の主キーになります。これらの列には、null 以外の一意のキーを配置できます。

したがって、ファクト テーブルは、メトリックと共に、ディメンション テーブルへの整数の外部キーで構成する必要があります。

create table dim_customer (
  id         integer primary key,
  first_name character,
  ...

create table dim_item (
  id           integer primary key,
  product_code character unique,
  ...


create table fct_sales (
  item_id     references dim_item(id),
  customer_id references dim_customer(id),
  ...
  sale_amount number

生データが製品コードとともに到着したら、まだそこに存在しないすべての製品コードの一意のリストを dim_item テーブルに挿入します。

その後、ファクト テーブルをロードするときに、アイテムに関連する ID を dim_item テーブルから検索し、その値を fct_sales テーブルに挿入します。

ウェアハウスにクエリを実行するときは、ファクト テーブルからディメンション テーブルに結合して、意味のある値 (顧客名、アイテム コードなど) を取得します。

于 2013-06-13T20:51:13.597 に答える