Isso pode não responder à sua pergunta diretamente, mas se você tiver várias dimensões intimamente relacionadas e frequentemente usadas juntas, você pode consolidá-las em um "minidimensão " que tem todas as combinações possíveis de território, distribuidor e varejista (veja minha resposta para outra pergunta ):
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 */
)
Inicialmente, isso pode parecer estranho, mas na verdade é muito fácil preencher e gerenciar e evita a complexidade dos relacionamentos entre as dimensões, o que muitas vezes fica confuso (como você descobriu). Obviamente, você acaba com uma dimensão muito grande em vez de três menores, mas, como mencionei na outra resposta, temos várias centenas de milhares de linhas em uma dimensão e isso nunca foi um problema para nós.