Może to nie odpowiadać bezpośrednio na Twoje pytanie, ale jeśli masz kilka wymiarów, które są blisko powiązane i często używane razem, możesz je skonsolidować w „mini-wymiar ” która ma każdą możliwą kombinację terytorium, dystrybutora i sprzedawcy (zobacz moją odpowiedź na kolejne pytanie ):
create table dbo.DIM_TerritorySalesChannels (
TerritorySalesChannelID int not null primary key,
TerritoryName nvarchar(100) not null,
RetailerName nvarchar(100) not null,
DistributorName nvarchar(100) not null,
/* other attributes */
)
Może to początkowo wydawać się niezręczne, ale w rzeczywistości dość łatwo jest wypełnić i zarządzać i unika złożoności relacji między wymiarami, które często stają się bałaganiarskie (jak już odkryłeś). Oczywiście otrzymujesz jeden bardzo duży wymiar zamiast trzech mniejszych, ale jak wspomniałem w drugiej odpowiedzi, mamy kilkaset tysięcy wierszy w jednym wymiarze i nigdy nie stanowiło to dla nas problemu.