Điều này có thể không trả lời trực tiếp câu hỏi của bạn, nhưng nếu bạn có một số thứ nguyên có liên quan chặt chẽ và thường được sử dụng cùng nhau, bạn có thể hợp nhất chúng thành một " kích thước nhỏ "có mọi sự kết hợp có thể có giữa lãnh thổ, nhà phân phối và nhà bán lẻ (xem câu trả lời của tôi cho một câu hỏi khác ):
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 */
)
Điều này thoạt đầu có vẻ khó xử nhưng thực sự khá dễ điền và quản lý và nó tránh được sự phức tạp của các mối quan hệ giữa các thứ nguyên, vốn thường trở nên lộn xộn (như bạn đã phát hiện ra). Rõ ràng là bạn kết thúc với một kích thước rất lớn thay vì ba kích thước nhỏ hơn, nhưng như tôi đã đề cập trong câu trả lời khác, chúng tôi có hàng trăm nghìn hàng trong một chiều và điều đó chưa bao giờ là vấn đề đối với chúng tôi.