テーブルのリレーションシップ
Microsoft Dataverse を使用しているとき、異なるデータ セットに関する情報を別個のテーブルに保持する必要があります。 これは、データの正規化と呼ばれます。 テーブルのリレーションシップは、テーブル行を他のテーブルの行と関連付けることができるさまざまな方法を定義します。
データベース テーブルにはテーブル内の一意の参照行に対する主キーがあることについて、このモジュールで既に説明しました。 Dataverse では、2 つのテーブル間のリレーションシップが主キーをルックアップ (つまり参照) しています。
リレーションシップのタイプ
テーブル リレーションシップは、テーブルの行を他のテーブルまたは同じテーブルの行と関連付けることができる方法を定義します。 テーブル リレーションシップには次の 2 種類しかありません。
一対多リレーションシップ: 一対多テーブル リレーションシップ (1:N) では、多数の参照する (関連した) テーブル行を、単一のリレーションシップ (プライマリ) テーブル行と関連付けることができます。 参照先テーブル行は「親」と呼ばれることがあり、参照するテーブルの行は「子」と呼ばれることがあります。 多対一リレーションシップは、子の視点から見た一対多リレーションシップにすぎません
多対多リレーションシップ: 多対多 (N:N) のテーブル リレーションシップでは、多数のテーブル行を、他の多数のテーブル行に関連付けることができます。 多対多リレーションシップを使用して関連付けられた行は同等であると考えられ、このリレーションシップは相互的なものです。
多対一と一対多
多対一 (N:1) リレーションシップは基本的には一対多とは異なるものではなく、視点が異なるだけです。 多対一リレーションシップ タイプは、デザイナーでリレーションシップに関係するいずれかのテーブルからリレーションシップを表示および作成できるため、ユーザー インターフェイスに存在します。 テーブル A とテーブル B の間に一対多リレーションシップがある場合、Power Apps Maker Portal のテーブル A の下に一対多リレーションシップ、テーブル B の下に多対一リレーションシップが表示されます。多対一リレーションシップは、関連するテーブルから見た一対多のリレーションシップにすぎません。 リレーションシップのタイプが異なるのではなく、単に分析観点が異なるだけです。
検索列
テーブルのリレーションシップを作成する簡単な方法は、データ型ルックアップを含む列を作成することです。 検索列を作成すると、多対一のリレーションシップが作成されます。
一対多、多対一、または検索列のどれを使用して作成されても、リレーションシップに機能の違いはありません。
テーブルのリレーションシップを手動で作成する
新しいテーブルを作成する場合は、このラーニング モジュールで以前に説明したように、多くのオプションとマウスのクリックで Dataverse を操作できます。 テーブル画面には、スキーマ ペインのリレーションシップへのリンクがあります。
このリンクを選択すると、テーブルのすべてのリレーションシップを示すテーブルが表示されます。 中には、システムが設計したものやユーザーが作成したものもあります。 現在のテーブルが関連付けられているテーブル、およびそれらの他のテーブルに対して持っているリレーションシップのタイプを確認できます。
また、コマンド バーの上部に新しいリレーションシップを作成できることに注意してください。 これにより、テーブル間にリレーションシップを手動で作成する柔軟性が実現されます。
作成するリレーションシップのタイプをユーザーが決定できます。 次の例では、Veterinarian というテーブルに一対多リレーションシップを作成しています。 それぞれのペットはどの獣医にも連れて行けますが、それぞれをかかりつけの獣医に連れて行きたいと思うでしょう。 この方法でリレーションシップを作成すると、関連するテーブルにルックアップ列が作成されることに注意してください。
このリレーションシップを一度作成すると、関連するテーブルに移動して、作成された検索列を検出できます。
多対多リレーションシップ
次に進む前に、Dataverse でテーブル間に多対多リレーションシップを作成する概念について簡単に説明します。
一対多リレーションシップには、テーブル リレーションシップの行の間に階層があることに注意してください。 多対多のテーブル リレーションシップによって関連付けられた行は、ピアと見なされます。
メモ
多対多のリレーションシップは、リレーショナル データベースによってサポートされないため、テーブル行をリンクする非表示の交差テーブルが Dataverse により作成されます。 この交差テーブルにはフォームがなく、そのプロパティを編集したり、テーブルに列を追加したりすることはできません。
関連するテーブルを選択して、多対多リレーションシップを手動で作成できます。 たとえば、ペット トリマーのテーブルとペットのテーブルがある場合、それぞれのペットに複数のトリマーを、それぞれのトリマーに複数の飼い主を割り当てることができます。 残念ながら、Dataverse にはこれを示すテーブルはなく、単にリレーションシップしかありません。 フォームには、関連するテーブルの品目が表示されるサブグリッドを挿入し、フィルター処理して、品目に対応する関連したテーブルからの品目を表示できます。 ただし、それはこのユニットの範囲外です。
詳細については、「多対多のテーブルの関連付けの作成の概要」を参照してください。