Dit beantwoordt uw vraag misschien niet direct, maar als u verschillende dimensies heeft die nauw verwant zijn en vaak samen worden gebruikt, kunt u ze samenvoegen tot een "mini-dimensie " die elke mogelijke combinatie van territorium, distributeur en detailhandelaar heeft (zie mijn antwoord op een andere vraag ):
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 */
)
Dit lijkt in eerste instantie misschien onhandig, maar het is eigenlijk vrij eenvoudig in te vullen en beheren en het vermijdt de complexiteit van relaties tussen dimensies, die vaak rommelig worden (zoals je hebt ontdekt). Uiteraard krijg je één heel grote dimensie in plaats van drie kleinere, maar zoals ik in het andere antwoord al zei, we hebben honderdduizenden rijen in één dimensie en dat is nooit een probleem voor ons geweest.