首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SSAS 父子維度設計全解析:員工組織架構遞迴關聯實作

     編輯:關於SqlServer

父子維度是 SSAS 中特殊的維度類型,其核心在於單一資料表內部的遞迴關聯。以員工組織架構為例,DimEmployee 表的 ParentEmployeeKey 參考自身的 EmployeeKey,形成樹狀階層。

資料結構與測試資料準備

-- 員工維度表(含自參考外鍵)
SELECT EmployeeKey, ParentEmployeeKey, ..., 
       CASE WHEN ISNULL(MiddleName,'') = '' THEN FirstName + ' ' + LastName 
            ELSE FirstName + ' ' + MiddleName + ' ' + LastName END AS FullName,
       Title
INTO DimEmployee FROM AdventureWorksDW2012.dbo.DimEmployee;

-- 經銷商銷售事實表
SELECT ProductKey, OrderDateKey, EmployeeKey, ...
INTO FactResellerSales FROM AdventureWorksDW2012.dbo.FactResellerSales;

-- 定義約束
ALTER TABLE DimEmployee ADD CONSTRAINT PK_EmployeeKey PRIMARY KEY CLUSTERED (EmployeeKey);
ALTER TABLE DimEmployee ADD CONSTRAINT FK_ParentEmployeeKey FOREIGN KEY(ParentEmployeeKey) REFERENCES DimEmployee(EmployeeKey);
ALTER TABLE FactResellerSales ADD CONSTRAINT FK_EmployeeKey FOREIGN KEY(EmployeeKey) REFERENCES DimEmployee(EmployeeKey);

SSAS 父子維度關鍵設定

  • 在維度設計師中,將 EmployeeKey 設為鍵屬性,ParentEmployeeKey 設為父屬性。
  • 啟用「父子」屬性,SSAS 會自動建立遞迴階層。
  • 可自訂「成員名稱」與「成員值」顯示邏輯,支援縮排與層級指示器。

此結構支援無限層級的組織架構,且無需預先定義固定層級數量,極具彈性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved