DimCustomerとFactOrdersの関係を処理する方法はいくつかあるので、データをどのようにモデル化するかによって異なります...
FactOrdersに3つのフィールドがあり、それぞれが以下のようにDimCustomerにリンクしている場合...
FactOrder
ShipperKey (FK)
ConsigneeKey (FK)
BillToKey (FK)
DimCustomer
CustomerKey (PK)
...次に、SSASデータベースの顧客の3つのディメンションが作成されます。これらのディメンションは、ロールプレイング(1つのディメンションをキューブに3回追加)を介して、または3つの個別のディメンションとして実装できます。後者は、よりユーザーフレンドリーな命名規則を可能にします。
一方、FactOrdersテーブルに以下のようにDimCustomerにリンクするフィールドが1つしかない場合...
FactOrder
CustomerKey (FK)
DimCustomer
CustomerKey (PK)
...次に、2つの方法のいずれかを使用して「顧客タイプ」(Shipper、Consignee、BillTo)を区別する必要があります...
方法1:DimCustomerテーブルにCustomerTypeフィールドを作成し、それをSSASプロジェクトのcustomerディメンションの属性にします...
FactOrder
CustomerKey (FK)
DimCustomer
CustomerKey (PK)
CustomerType
方法2:新しいディメンションテーブル(DimCustomerType)を作成し、それをキューブに追加します...
FactOrder
CustomerKey (FK)
CustomerTypeKey (FK)
DimCustomer
CustomerKey (PK)
DimCustomerType
CustomerTypeKey (PK)