マスター データ サービス派生階層は、モデル内のエンティティ間に既に存在するドメイン ベースの属性リレーションシップから派生します。
派生階層を作成して、モデル内の既存のドメイン ベースの属性リレーションシップを強調表示できます。
リーフメンバーのグループとその他のリーフメンバー
派生階層では、あるエンティティのリーフ メンバーを使用して、別のエンティティのリーフ メンバーをグループ化します。 派生階層は、これらのエンティティ間のリレーションシップに基づいています。 一方、明示的階層は、単一のエンティティからのメンバーのみに基づいており、指定した方法で構造化されます。
基になるデータに影響を与えずに、派生階層の構造を変更できます。 リレーションシップがモデルにまだ存在する限り、派生階層を削除してもマスター データには影響しません。
明示的階層と派生階層
次の表に、明示的階層と派生階層の違いをいくつか示します。
明示的階層 | 派生階層 |
---|---|
構造体はユーザーによって定義されます | 構造は、ドメイン ベースの属性間のリレーションシップから派生します |
1 つのエンティティのメンバーを含む | 複数のエンティティのメンバーを含む |
統合メンバーを使用して他のメンバーをグループ化する | あるエンティティのリーフ メンバーを使用して、別のエンティティのリーフ メンバーをグループ化します |
不規則にできる | 常に統一された数のレベルを持っている |
Variable-Depth 階層の作成
可変深度階層を作成するには、次の 2 つの方法をお勧めします。
すべてのレベルが同じ属性を持つ必要がある場合は、1 つのエンティティを作成し、エンティティに基づくドメイン ベースの属性を使用して、このエンティティに再帰的階層を作成します。
リーフ メンバー用の属性セットと上位レベルの属性セットが必要な場合は、派生階層に 2 つのエンティティを作成します。 リーフ エンティティの場合は、親エンティティに基づくドメイン ベースの属性を使用します。 親エンティティの場合は、それ自体に基づくドメイン ベースの属性を使用します。
派生階層の例
次の例では、Product エンティティのリーフメンバーが Subcategory エンティティのリーフメンバーを介してグループ化され、その後、Category エンティティのリーフメンバーによってさらにグループ化されます。 この階層は、Product エンティティに Subcategory という名前のドメインベースの属性があり、Subcategory エンティティに Category という名前のドメインベースの属性があるために可能です。
階層構造は、メンバーのグループ化方法を示します。 メンバーが最も多いエンティティは下部にあります。
派生階層では、Product と Subcategory、Subcategory と Category の間のリレーションシップを強調表示できます。 この階層内のメンバーを表示すると、ツリー内の各レベルに同じエンティティのメンバーが含まれます。
この種類の階層では、メンバーを無効なレベルに移動できません。 たとえば、Road-650 バイクを 1 つのサブカテゴリであるロード バイクから別のマウンテン バイクに移動できます。 1 {Bikes} のように、Road-650 をカテゴリの直下に移動することはできません。 階層ツリーでメンバーを移動するたびに、メンバーのドメイン ベースの属性値が変更され、移動が反映されます。
注記
派生階層ツリー内のすべてのメンバーは、コードで並べ替えられます。 並べ替え順序を変更することはできません。
メンバーのドメイン ベースの属性が空白で、派生階層に属性が使用されている場合、メンバーは階層に表示されません。 属性を入力することを要求するビジネスルールを作成します。 詳細については、「 属性値の要求 (マスター データ サービス)」を参照してください。
関連タスク
タスクの説明 | トピック |
---|---|
新しい派生階層を作成します。 | 派生階層の作成 (マスター データ サービス) |
既存の派生階層のレベルを非表示または削除します。 | 派生階層のレベルの非表示または削除 (マスター データ サービス) |
既存の派生階層の名前を変更します。 | 派生階層名の変更 (マスター データ サービス) |
既存の派生階層を削除します。 | 派生階層の削除 (マスター データ サービス) |