Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
- 外部キー制約 (参照制約 または参照整合性制約)的な。
- 伝播規則の説明
特定操作の1対多の関連付けの関連レコードへの影響を制御
関連付けの例 †
営業案件エンティティ
1対多(多対1) †
- 親子関係
- 1つの主エンティティ(親)
- 複数の関連エンティティ(子)
- 親の外部キーが子のプライマリー キーを指している。
※ ここでの関連エンティティは、1対多の多側を表現するエンティティの意味。
”多対多を表現するエンティティのことではないので注意する。”
1対多の多側を表現するエンティティには交差エンティティという用語を使用する。
作成 †
- フィールドの作成時、関連エンティティ(子)側で検索のデータ型を指定する。
- 若しくは、エンティティの[関連付けの種類]を選択し、メニュー バーにある[新規]をクリックする(推奨)。
- 内部的には、主キー(GUID)に対する外部キー(GUID)を設定している。
表示 †
- レコード
レコードを開くとナビゲーション バーからエンティティを辿ることができる。
- ソリューション エクスプローラー
反転エントリを表示、どちらからも関連付けの作成・変更が可能。
- 親 ---> 子
主エンティティから ---> 1対多
- 子 ---> 親
関連エンティティから ---> 多対1
多対多 †
- 2つのエンティティをリンクする
関連レコードを格納する中間テーブルは以下のように呼ばれる。
- 交差エンティティ
- リンク エンティティ
- リンク テーブル
ここでは、交差エンティティを使用する。
エンティティA <-> 交差エンティティ <-> エンティティB
作成 †
システム エンティティ、カスタム エンティティを使用する方法がある。
ネイティブ †
- 概要
プラットフォームの機能で交差エンティティを作成する。
- 特徴
平たく言って、プラットフォームから見てエンティティではないので、
- 交差エンティティのカスタマイズは不可能(e.g.:列の追加は不可能)。
- 交差エンティティに直接クエリを実行できない。
- 交差エンティティをワークフロー ルールに含めることはできない。
- 関連ビューに交差エンティティは表示されない(エンティティA <-> エンティティBと表示される)
- 交差エンティティの関連レコードを追加するには関連ビューを使用する。
- 交差エンティティへの特権はない(関連エンティティへの追加・追加先特権で制御)。
- 関連エンティティ、交差エンティティ共に、常に監査が有効になっている。
手動 †
- 概要
システム設計の一部として、交差エンティティを作成する。
- この交差エンティティ=1対多の関連付けをする
2つの検索フィールドを持つカスタム エンティティ。
- 交差エンティティにカスタム フィールドを追加する必要がある場合には、こちらの方法を使用する。
- 特徴
平たく言って、通常のカスタム エンティティなので、
- 関連ビュー(多対多の関連)が表示されない(エンティティA <-> エンティティBと表示されない)
- カスタムの関連ビューを作成する追加の作業が必要になる。
- 交差エンティティに直接クエリを実行できる。
- 交差エンティティをワークフロー ルールに含めることができる。
表示 †
- 関連ビューでは表示されない。
- 通常のエンティティのビューで表示。
- 必要に応じて、カスタムの関連ビューを作成
組込み機能 †
その他の組込み機能について。
- キューアイテム
キューにリンクされているレコードの詳細を格納する。
- フォロー
ユーザが関心を持っているレコードを示する。
作成方法 †
1対多 †
手順
- ソリューションのエンティティ一覧を展開
- エンティティ(関連エンティティ側)を展開
- エンティティの[関連付けの種類]で1対多を選択
- メニュー バーにある[新規]をクリック
- 以下の関連付けのプロパティを定義する。
※フィールドの作成時、関連エンティティ(子)側で検索のデータ型を指定しても良い。
(その場合、以下プロパティには既定の設定が適用される)。
関連付けのプロパティ †
/ | プロパティ | 説明 |
1 | 主エンティティ | 1対多の1の方のエンティティ |
2 | 関連エンティティ | 1対多の多の方のエンティティ(変更不可能) |
3 | 名前 | 関連付けの名前(既定は接頭辞_主エンティティ_関連エンティティ) |
4 | 検索可能 | 高度な検索ツールで関連レコードをドリルダウンできる |
検索フィールド †
関連付けによって作成される、関連エンティティの検索フィールドのプロパティ
/ | プロパティ | 説明 |
1 | 表示名 | 検索フィールドの説明 |
2 | 名前 | 検索フィールドのスキーマ名(既定値は表示名+Id) |
3 | フィールド要件 | 主エンティティが必須の場合、検索フィールドに[必須項目]を指定する。 |
4 | 説明 | 検索フィールドの説明 |
主エンティティのナビゲーション バー項目 †
主エンティティのレコードのナビゲーション バーに表示される項目
/ | プロパティ | 説明 |
1 | 表示オプション | - [複数形の名前を使用する]:1対多なので関連エンティティの複数形の名前が使用される。 - [カスタム ラベルを使用する] ---> [カスタム ラベル]:カスタム ラベルを入力する。 - [表示しない]:ナビゲーション バーに関連エンティティを表示しない。 |
2 | カスタム ラベル | 上記参照。よりコンテキストに特化した名称をナビゲーション リンクに付与できる。 |
3 | 表示領域 | ナビゲーション バーの表示セクションの選択(詳しくは「CRM フォームのカスタマイズ」を参照) |
4 | 表示順序 | 表示セクションに表示するための順序 |
多対多 †
手順
- ソリューションのエンティティ一覧を展開
- エンティティの[関連付けの種類]で多対多を選択
- メニュー バーにある[新規]をクリック
- 以下の関連付けのプロパティを定義する。
現在のエンティティとその他のエンティティ †
多対多の場合、[現在のエンティティ]と[その他のエンティティ]を設定する。
プロパティは
を除いて「関連付けのプロパティ」と同じ。
検索可能は、交差エンティティではなく、多対多の関連の反対側のエンティティに対して。
(1対多)関連付けの動作 †
動作に関わる関連付けの種類 †
上位下位の関連付け †
- 主レコードの操作が関連レコードにも伝播する。
- 主レコードを割り当てると、関連レコードも割当てられる。
- 1つのエンティティに1つだけ定義可能。
参照の関連付け †
- 主レコードの操作が関連レコードに伝播しない。
- 主レコードを割り当てても、関連レコードは割り当てられない。
- その他の関係付けは、すべて参照の関連付け。
伝播する動作 †
/ | アクション | 説明 |
1 | 割り当て | 主レコードが割り当てられる場合 |
2 | 共有 | 主レコードが共有される場合 |
3 | 共有の解除 | 主レコードの共有が解除される場合 |
4 | リペアレント | 関連レコードの初回関連付けか、関連付けの変更 |
5 | 統合 | 主レコードが別レコードに統合される場合 |
6 | 削除 | 主レコードが削除される場合 |
動作の伝播ルール †
割り当て、共有、共有解除、リペアレント †
以下のルールを使用可能。
/ | ルール | 関連付けの関連エンティティに対する結果 |
1 | すべての(種類の)レコードに伝播 | すべての関連エンティティに伝播 |
2 | アクティブ レコードにのみ伝播 | 状態がアクティブな関連エンティティに伝播 |
3 | 同一所有者レコードにのみ伝播 | 同一所有者の関連エンティティに対して伝播 |
4 | 伝播しない | 関連エンティティ レコードは影響を受けない |
同一所有者の所有者とは、「レコードベースのセキュリティ」にあるようにレコードの所有者(割当した場合は、再割当て前)を指す。
削除 †
以下のルールを使用可能。