主キーの設定 (3) 親子の関係
最終更新日: 2022年10月24日
想定するモデル関係を図に示します。子モデルBは、モデルAの主キー値がとりうる値の範囲(定義域)と、連番(順序値)の組み合わせとします。
用意するモデルは二つです。
主キーに順序を使うとしています。
親モデルAの主キー項目をモデル参照(検索)型で紐付けます。これを 「モデルAの主キー」 とします。
「モデルA主キー」項目は外部キーの設定も同時に行います。これによってモデルBの新規作成時、モデルAの主キー値を引き継ぐ動作を実現します。
この項目は入力時、隠し項目とします。入力は「モデルA主キー入力用」項目が行うためです。
「モデルBの主キー」 項目も主キーとします。これで 「モデルAの主キー」, 「モデルBの主キー」 の組み合わせによる複合主キーとなります。
主キーに複合キーを使用したとき、順序に利用できるのはいずれか一つの項目のみとなります。複数の主キー項目で順序を使う設定はできません。
「モデルA主キー入力用」 項目はモデル参照(検索)としています。モデル参照の実体は、モデルAの主キー値が格納されます。
「自モデル内項目へのマッピング」で主キー項目と紐付けます。これによって、この項目への入出力はすべてマッピングされた項目に対する操作に変わります。
モデルAの主キー項目をモデル参照項目とすることで、ルックアップを使うことができます。
ルックアップは、連動元項目がモデル参照項目となっている必要があります。(文字列、数値、日付といった項目を連動元項目とすることはできません。)
モデルAのデータを2件、用意した例です。
Wagbyでは外部キーの設定をすることで、親モデルの詳細画面に、子モデルの新規登録ボタンが自動的に用意されます。
モデルBの新規登録画面には、親であるモデルAの主キーが自動的にセットされます。ルックアップも同時に機能します。
モデルBに関するデータを入力し、作成します。「モデルBの主キー」項目(順序値)が設定されていることがわかります。
モデルAの詳細画面には、自身に紐づく子モデル(モデルB)の一覧が表示されます。ここで赤枠の値はすべて同じ「モデルAの主キー」の値を指しています。
設定方法
モデルA
モデルB
さらに子モデルBの順序値をもった項目 「モデルBの主キー」 を用意します。
項目名
型
主キー
外部キー
その他
モデルA主キー
文字列(モデルA主キーと合わせる)
○
モデルAの「モデルAの主キー」
-
モデルA主キー入力用
モデル参照(検索)
マッピング設定で「モデルA主キー」と紐づける
モデルB主キー連番
文字列
○
順序値とする。
注意
ルックアップ項目を用意する
ルックアップの仕組み
動作例