SSAS - 以哪種方式訂購屬性?
我們的 SSAS 多維數據集有一個日期維度,對於 DayName 字元串成員,它按字母順序顯示,而不是按時間順序顯示。我添加了一個 DayOfWeek 整數 1-7 用於排序。我有兩種選擇來實現這一點,不確定兩者的優缺點。
- 使 DayName 屬性可見,並將 DayOfWeek 用作 OrderBYAttribute
- 使 DayOfWeek 屬性可見,並使用 DayName 作為 NameColumn
像這樣設置時,屬性在功能上是相同的。我傾向於#2,因為它是一個整數。
你的術語有點錯誤,這使得你很難說出你的 2 個選項到底是什麼意思,但你應該使用
OrderByAttribute
(我認為你的意思是選項 1)。OrderByAttribute
正是為了用於此目的,通過鍵或值以外的其他方式對屬性進行排序。如果通過選項 2,您的意思是您使用
DayOfWeek
列創建屬性(本質上是使用 a ofKeyColumn
創建屬性DayOfWeek
)然後NameColumn
將DayName
.
KeyAttribute
應該用於定義哪些成員是唯一的,並且應該NameColumn
用於定義您希望向使用者顯示的內容。這些屬性中的每一個都有自己的用途,您應該這樣使用它們。當您實際上需要該屬性來解決重複問題等問題時,濫用
KeyColumn
定義訂單會給您帶來麻煩。文件的一些摘錄:
KeyColumns:包含表示屬性鍵的一個或多個列,它是屬性綁定到的數據源視圖中的基礎關係表中的列。除非為 NameColumn 屬性指定了值,否則每個成員的此列的值都會顯示給使用者。
NameColumn 標識提供向使用者顯示的屬性名稱的列,而不是該屬性的鍵列中的值。當屬性成員的鍵列值不明確或對使用者無用時,或者當鍵列基於復合鍵時,使用此列。NameColumn 屬性不用於父子層次結構;相反,子成員的 NameColumn 屬性用作父子層次結構中的成員名稱。
OrderBy 描述如何對屬性層次結構中包含的成員進行排序。預設值為 Name,它指定屬性成員的排序基於 NameColumn 屬性的值(如果有)。否則,成員按鍵列的值排序。可用選項如下: