親子関係を定義する
最終更新日: 2022年5月18日
R8 | R9
「顧客(customer)」と「サポート(support)」という2つのモデルを例に説明します。
「顧客 詳細表示」ボタンをクリックして顧客詳細表示画面を開きます。顧客モデル側でもサポート記録の一覧が表示されるようになります。
このように、外部キー関係にあるモデルは、画面上でも双方向のリンク関係をもちます。これによって「どの顧客についてのサポート記録だったか」を確認できるようになります。
外部キー関係では、顧客のデータが削除されたタイミングで、それに関連するサポートのデータも全て削除されます。(この動作を変更し、サポートのデータを同時に削除しない設定とすることもできます。)
参照先項目は、主キーでなければいけません。上の例では(参照先モデルである)「顧客」の「ID」は主キーとなっています。
外部キー項目は、右端に鎖のアイコンが表示されます。
子モデルの詳細画面に用意された「登録画面へ」ボタンを押下して新規登録画面を開くと、親の主キーは転記された状態になります。
一方、子モデルの検索・一覧表示画面に用意された「登録画面へ」ボタンを押下して新規登録画面を開くと、親の主キーは空白です。
親モデルの詳細画面に用意された子モデルの新規登録を押下すると、親の主キーは転記されます。
外部キーモデル(ここではサポートモデル)の一覧表示形式が「グリッド形式」のとき、親モデル詳細画面の子モデルもグリッド形式で表示されます。
子モデルが「グリッド形式」の場合、子の外部キーは検索条件を有効にしてください。
検索条件を有効にしない場合、親モデルのキーによる絞り込みが行われません。(そのため、子モデルがすべて表示されます。)
親モデルの詳細表示画面の下部に用意される子モデル一覧データの並びは、子モデル主キーの昇順となっています。
例えば、親p1に紐づく子データc1,c2,c3を作成したとき、標準では、子モデル一覧の表示順は c1,c2,c3 です。
ここで子モデル「主キー」項目のソート順に「-1」を指定するとc3,c2,c1になります。
ソートの設定は、親子モデル画面の子モデル表示だけでなく、子モデルの一覧表示画面にも同時に反映されます。(両者は区別されません)
「繰り返しコンテナ」と「外部キー」のいずれも、親モデルと子モデルの間で 1:N の関係を構築できます。
外部キーの値を使った参照連動を指定することもできます。ここでは「氏名」項目を表示するようにします。
親モデルの詳細画面から子モデルの登録画面に遷移した場合のみ、この機能が適用されます。
次の条件に合致しているとき、子モデル一覧表示の行をクリックすると、対象モデルの詳細表示画面へ遷移させることができます。
親モデルの詳細表示画面の子モデル表示時、ページングを設定できます。
この設定を有効にすることで、子モデルのデータ量が多い時のパフォーマンス向上につながります。
ページングの設定は親モデルの一覧更新画面でも行えます。
子モデルが「グリッド表示」の場合、子の外部キーは検索条件を有効にする必要があります。
外部キーを用意する子モデルでは、親モデルの複合キーをすべて含める必要があります。
例えば親モデルの主キーが pkey1, pkey2 のとき、子モデルは pkey1 と pkey2 を外部キーとする項目を保持しなければなりません。どちらか片方のみを保持した子モデルを定義することはできません。
例
顧客の詳細表示画面に「サポート新規作成」ボタンが用意されています。
外部キーの関係にあるサポートモデルの新規登録は、対象データ(ここでは顧客データ)の詳細表示画面から行います。
ワンポイント
定義方法
「顧客ID」を外部キー項目としています。
外部キー項目の型は、参照先(親)の項目の型と同じ型(今回は数値型)とします。
「詳細 > 外部キー」でモデル名と項目を指定します。
重要
外部キーアイコン
子モデル作成時の親の主キーの扱い
つまり、子は共通の親を持つことが前提となります。
これは、特定の子を起点にしていないためです。
グリッド表示
定義方法
重要
子モデルの表示順序を制御する
これを変更することができます。
注意
繰り返しコンテナとの違い
両者の違いは次の通りです。
参照連動との組み合わせ
ワンポイント
親モデルを経由せずに子モデルの登録画面にアクセスし、主キーを入力しても参照連動は行われません。
定義方法
複合キーとの組み合わせ
行クリック遷移
true
と記述することで、当該モデルの一覧表示画面では行クリック遷移を有効にしつつ、子モデル一覧表示では(詳細ボタンは表示されるが)行クリック遷移を無効にすることができます。
子モデルデータのページング表示9.1.0
例
定義方法
親モデルの設定を確認してください。
「最大表示数」では、1ページあたりに表示するデータの件数を指定します。ここでは3件としました。
(最大表示数が未入力の場合、20件となります。)
ワンポイント
詳しくは「子モデルの同時更新 > 子モデルデータのページング表示」をお読みください。
トラブルシューティング
子モデル一覧が表示されない
子モデル一覧が表示されない(グリッド表示)
親モデルの主キーが複合キーの場合