Dies beantwortet Ihre Frage möglicherweise nicht direkt, aber wenn Sie mehrere Dimensionen haben, die eng miteinander verbunden sind und häufig zusammen verwendet werden, können Sie sie in einer "Mini-Dimension ", das jede mögliche Kombination aus Gebiet, Distributor und Einzelhändler hat (siehe meine Antwort auf eine weitere Frage ):
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 */
)
Dies mag zunächst umständlich erscheinen, ist aber eigentlich ganz einfach zu füllen und zu verwalten und es vermeidet die Komplexität von Beziehungen zwischen Dimensionen, die oft unordentlich werden (wie Sie festgestellt haben). Natürlich haben Sie am Ende eine sehr große Dimension anstelle von drei kleineren, aber wie ich in der anderen Antwort erwähnt habe, haben wir mehrere hunderttausend Zeilen in einer Dimension und es war nie ein Problem für uns.