親子関係を設定する最終更新日: 2021年7月20日

ここでは「顧客」と「サポート」という2つのモデルをとりあげてみます。

顧客のデータを新規に登録します。
顧客の詳細表示画面に「サポート新規作成」ボタンが用意されています。 外部キーの関係にあるサポートモデルの新規登録は、対象データ(ここでは顧客データ)の詳細表示画面から行います。

顧客詳細表示画面

「サポート新規作成」ボタンをクリックし、サポート新規登録画面を開いてみます。顧客ID(紐づく親モデルのID)は自動設定されています。

サポート新規登録画面

各項目を入力して登録を行います。サポート詳細表示画面から顧客モデルへ戻るための「顧客 一覧表示」「顧客 詳細表示」ボタンが用意されています。

サポート詳細表示画面

「顧客 詳細表示」ボタンをクリックして顧客詳細表示画面を開きます。顧客モデル側でもサポート記録の一覧が表示されるようになります。

顧客の詳細表示画面

このように、外部キー関係にあるモデルは、画面上でも双方向のリンク関係をもちます。これによって「どの顧客についてのサポート記録だったか」を確認できるようになります。

ワンポイント

外部キー関係では、親(顧客)のデータが削除されたタイミングで、それに関連する子(サポート)のデータも全て削除されます。

設定方法

今回用意したサポートモデルの設定を説明します。
外部キーに指定した項目の型は、参照先(親)の主キーを参照するとします。

サポートモデルの設定

参照方法は「検索画面」とします。

外部キーの設定

重要

参照先項目名は、主キーとなっている必要があります。上の例では(参照先モデルである)"顧客" の "顧客ID" は主キーとなっています。

※ 参照方法は必ずしも「検索画面」だけでなく、リストボックスなども利用できます。しかし一般的に、外部キー参照関係では多くのデータが対象となるため、リストボックスなどでは候補が大量に表示されると使い勝手がよくありません。そのため「検索画面」の利用が妥当です。

設定のポイントは「顧客ID」が外部キーであることを指定する部分です。
「外部キー>モデル名」に、親モデルを指定します。

外部キーの設定(参照先項目名を省略したとき)

外部キーアイコン

外部キー指定された項目は、モデル項目一覧で鎖のアイコンが表示されます。

外部キーアイコン

子モデル作成時の親の主キーの扱い

子モデルの詳細画面に用意された「登録画面へ」ボタンを利用する

子モデルの詳細画面に用意された「登録画面へ」ボタンをクリックして新規登録画面を開くと、親の主キーは転記された状態になります。つまり子は共通の親を持つことが前提となります。

子モデルの詳細画面に用意された「登録画面へ」ボタンをクリックする
親の主キーが転記されている

子モデルの検索・一覧表示画面に用意された「登録画面へ」ボタンを利用する

子モデルの検索・一覧表示画面に用意された「登録画面へ」ボタンをクリックして新規登録画面を開くと、親の主キーは空白です。これは特定の子を起点にしていないためです。

子モデルの検索・一覧表示画面に用意された「登録画面へ」ボタンをクリックする
親の主キーは空白である

このタイミングで、親を検索して紐づけることができます。

親を検索して紐づける

親モデルの詳細表示画面に用意された「新規作成」ボタンを利用する

親モデルの詳細画面に用意された子モデルの新規登録をクリックすると、親の主キーは転記されます。

親モデルの詳細画面に用意された子モデルの新規登録ボタン
親の主キーが転記されている

子モデルの表示順序

親モデルの詳細表示画面の下部に用意される子モデル一覧データの並びは、子モデル主キーの昇順となっています。

ルックアップとの組み合わせ

外部キーの値を使ったルックアップを指定することもできます。ここでは「氏名」項目を表示するようにします。

外部キーを連動元としたルックアップの実現

設定方法

ここでは「顧客名」項目を用意してみます。

顧客名項目を追加する

この顧客名項目はルックアップとします。連動する項目は外部キーである "顧客ID" です。

ルックアップの設定

行クリック遷移

次の条件に合致しているとき、子モデル一覧表示の行をクリックすると、対象モデルの詳細表示画面へ遷移させることができます。

  1. 遷移先モデルの詳細画面が作成されている。
  2. "外部キー連携 > 親モデルの詳細表示画面に表示するデータ一覧 > 詳細ボタン > 表示する" が有効である。

トラブルシューティング

子モデル一覧が表示されない