サポート > リポジトリ > 親子関係 > 一つの親に複数の子を紐づける

「顧客(customer)」を親モデルとし、「サポート(support)」「購買履歴 (buying)」の二つの子モデルを用意する例を説明します。

外部キーによるモデルの連携は、子を複数指定することができます。顧客モデルを親とし、二つの子「購買履歴」「サポート」モデルを用意した例を図1,2に示します。

図1 親モデルの詳細画面に、複数の子モデルの新規登録ボタンが用意される
図2 子モデルを登録すると(親モデルの詳細画面に)表示される

親モデルにおける表示順

モデルID (英語) の辞書順に並びます。

今回用意した購買履歴モデルとサポートモデルの定義を図3,図4に示します。
外部キーに指定した項目の型は、参照先の項目の型と同じ型で指定します。ここでは「顧客ID」を「数値」型と指定しています。

図3 購買履歴モデルの定義
図4 サポートモデルの定義

「顧客ID」項目には、外部キーの設定を行います。
「外部キー>モデル名」に、親モデルを指定します。

図5 外部キーの定義

「参照先項目名」は、子モデル側の項目が同じ名前の場合、省略できます。(今回は同じ "customerid" としたため、省略することができます。)

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

親モデル詳細画面での子モデルは標準ではタブに格納されます。(図1,図2) 子モデルをタブではなく、縦に並べて表示させることもできます。

図6 複数の子モデルを縦に並べて表示させる

定義方法

子モデルの画面定義を修正します。

「画面 > 検索・一覧表示 > 外部キー連携 > 表示方式 > タブレイアウト」のチェックをはずします。標準では、チェックされています。

図7 タブレイアウトを使う
図8 タブレイアウトを使わない
(今回の例のように)複数の子モデルがある場合、すべての子モデルでタブレイアウトを使うか、使わないかの設定を行ってください。混ぜることは可能ですが、通常はどちらかに統一します。