一方のテーブルのデータは、多くの場合、別のテーブルのデータに関連しています。 たとえば、 Teachers テーブルと Class テーブルがあり、 クラス テーブルに Teachers テーブルとの 参照関係があり、どの教師がクラスに指示するかを示す場合があります。 ルックアップ列を使用して、 Teachers テーブルのデータを表示できます。 これは一般に「ルックアップ列」と呼ばれます。
リレーションシップを定義する
1 つのテーブルから別のテーブル (またはテーブルとテーブル自体の間) に、複数の種類のリレーションシップを作成できます。 各テーブルは複数のテーブルとのリレーションシップを持つ場合があり、各テーブルは別のテーブルに対して複数のリレーションシップを持つことができます。 一般的なリレーションシップの種類は次のとおりです。
- 多対一 - この種類のリレーションシップでは、テーブル A の各行はテーブル B の複数の行と一致できますが、テーブル B の各行はテーブル A の 1 つの行にのみ一致できます。たとえば、クラスには 1 つの教室があります。 これは最も一般的な種類のリレーションシップであり、列リストにルックアップ列として表示されます
- 一対多 - この種類のリレーションシップでは、テーブル B の各行はテーブル A の複数の行と一致できますが、テーブル A の各行はテーブル B の 1 つの行にのみ一致できます。たとえば、1 人の教師が多くのクラスを教えています。
- 多対多 - この種類のリレーションシップでは、テーブル A の各行がテーブル B 内の複数の行と一致し、その逆も可能です。 たとえば、学生は多くのクラスに出席し、各クラスには複数の学生を含めることができます。
さらに、親テーブルに対してアクションが実行されるたびに、多対一リレーションシップと一対多リレーションシップで高度なカスケード動作を設定できます。
ルックアップ列を追加する (多対 1 の関係)
テーブルに参照リレーションシップを追加するには、[ リレーションシップ ] 領域にリレーションシップを作成し、リレーションシップを作成するテーブルを指定します。
powerapps.com で、左側のナビゲーション ウィンドウで [テーブル] を選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
既存のテーブルを選択するか、 新しいテーブルを作成する
[ リレーションシップ ] 領域を選択します。
[ リレーションシップの追加] を選択し、リレーションシップの種類 ( 多対一など) を選択します。
右側のウィンドウで、[関連]テーブルを[現在]のテーブルとして選択し、[完了]を選択します。
[ テーブルの保存] を選択します。
一対多リレーションシップを追加する
一対多リレーションシップを追加するには、[ リレーションシップ ] 領域にリレーションシップを作成し、リレーションシップを作成するテーブルを指定します。
powerapps.com で、左側のナビゲーション ウィンドウで [テーブル] を選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
既存のテーブルを選択するか、 新しいテーブルを作成する
[ リレーションシップ ] 領域を選択します。
[ リレーションシップの追加] の右側にある下矢印を選択し、[ 一対多] を選択します。
テーブルを選択します。 ルックアップ 列が 現在 テーブルに表示され、テーブル名 (この例では教師) が既定で設定されますが、必要に応じて変更できます。 [ 完了] を選択して、テーブルにリレーションシップを追加します。
注
一対多リレーションシップの場合、参照列は、現在選択しているテーブルではなく、関連するテーブルに作成されます。 現在のテーブルを参照する必要がある場合は、多対一リレーションシップを作成します。
[ テーブルの保存] を選択します。
多対多リレーションシップを追加する
多対多リレーションシップを追加するには、[ リレーションシップ ] 領域にリレーションシップを作成し、リレーションシップを作成するテーブルを指定します。
powerapps.com で、左側のナビゲーション ウィンドウで [テーブル] を選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
既存のテーブルを選択するか、 新しいテーブルを作成する
[ リレーションシップ ] 領域を選択します。
[ リレーションシップの追加] を選択し、[ 多対多] を選択します。 これにより、リレーションシップを作成するテーブルを選択するためのパネルが開きます。 [関連テーブル] ドロップダウンからテーブルを選択します。
テーブルを選択すると、リレーションシップとリレーションシップ テーブルの名前が表示されます。 既定ではテーブルの名前が組み合わされますが、必要に応じて変更できます。
[ 完了] を選択してテーブルにリレーションシップを追加し、[ テーブルの保存] を選択します。
高度なリレーションシップの動作を追加する
一対多リレーションシップまたは多対一リレーションシップを構築するときに、高度な動作を設定することもできます。
これらのオプションは、関連するテーブルの階層をカスケードダウンするため、連鎖動作とも呼ばれます。 たとえば、学生がシステムから削除された場合は、学生の関連するテストと宿題を削除することが望ましい場合があります。 この種の動作は、保護者関係と呼ばれます。
一方、アクションを階層に連鎖させたくないと判断する場合があります。 たとえば、教師とクラスの関係では、親 (教師) が削除されたときに子テーブル (クラス) を削除しないでください* と判断できます。 これは参照関係と呼ばれます。
カスタム テーブルを作成するか、既存の Common Data Model テーブルを使用してビジネス データをモデル化するときは、必要な動作と関連テーブルの階層全体への影響を考慮し、次の標準動作のいずれかを選択します。
参照、リンクの削除: 2 つのテーブル間の参照リレーションシップでは、関連する行に移動できますが、一方に対して実行されたアクションはもう一方には影響しません。 たとえば、教師とクラスの間に一対多の関係がある場合、教師を削除しても、関連するクラスには影響しません。
参照、削除の制限: 参照では、2 つのテーブル間の削除リレーションシップを制限します。関連する行に移動できます。 親行に対して実行されたアクションは子行には適用されませんが、子行が存在する間は親行を削除できません。 これは子の行を孤立させない場合に役立ちます。 これにより、ユーザーは親を削除する前に、すべての子を強制的に削除します。
親子関係: 2つのテーブル間の親子関係では、親テーブルのレコードに対して行われたアクションは、親テーブルのレコードに関連するすべての子テーブルのレコードにも適用されます。 たとえば、親レコードの所有者は、子テーブル レコードへのアクセス権を継承しているため、親レコードが削除されると、すべての子レコードも削除されます。
習慣: 2 つのテーブル間のカスタム リレーションシップでは、考えられる一連の各アクションに関連付けられている動作を選択します。
既定値とカスタム動作の詳細については、「 テーブル リレーションシップの動作を構成する」を参照してください。
アプリでルックアップカラムを使用する
ルックアップ列を含むテーブルからアプリを自動的に作成すると、テーブルの [プライマリ名] 列のデータを含むドロップダウン コントロールとして表示されます。
キャンバス アプリに 1:N リレーションシップと N:N リレーションシップを追加する
Relate 関数を使用して、Microsoft Dataverse の一対多リレーションシップまたは多対多リレーションシップを介して 2 つの行をリンクします。 詳細情報: Power Apps の関連付け関数と関連解除関数