Es posible que esto no responda a su pregunta directamente, pero si tiene varias dimensiones que están estrechamente relacionadas y que a menudo se usan juntas, puede consolidarlas en un "mini-dimensión " que tiene todas las combinaciones posibles de territorio, distribuidor y minorista (consulte mi respuesta a otra pregunta ):
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 */
)
Al principio, esto puede parecer incómodo, pero en realidad es bastante fácil de completar y administrar y evita la complejidad de las relaciones entre dimensiones, que a menudo se complica (como ha descubierto). Obviamente, terminas con una dimensión muy grande en lugar de tres más pequeñas, pero como mencioné en la otra respuesta, tenemos varios cientos de miles de filas en una dimensión y nunca ha sido un problema para nosotros.