主キーの設計 (4) 親子孫の関係
最終更新日: 2022年10月24日
想定するモデル関係を図に示します。親モデルAと子モデルBの関係は前ページの説明をお読みください。
孫モデルCは、モデルAの主キー値がとりうる値の範囲(定義域)とモデルBの主キー値がとりうる値の範囲(定義域)、そして連番(順序値)の組み合わせとします。
用意するモデルは三つです。
モデルA,モデルBの主キー値を含みます。
「モデルBがもつモデルAの主キー」 項目は モデルA の主キー値を格納するため、モデルA の主キーの型と同じ文字列型とします。主キーかつ外部キーの設定を行います。
入力系画面で、隠し項目の設定を行います。この項目への入力は「モデルB主キー入力用」で行うためです。
「モデルBがもつモデルBの主キー」項目は モデルB の主キー値を格納するため、モデルB の主キーの型と同じ文字列型とします。主キーかつ外部キーの設定を行います。
入力系画面で、隠し項目の設定を行います。この項目への入力は「モデルB主キー入力用」で行うためです。
「モデルCの順序によるキー」項目も主キー項目で、順序を使うとします。
「モデルB主キー入力用」の設定です。「自モデル内項目へのマッピング」で主キー項目と紐付けます。これによって、この項目への入出力はすべてマッピングされた項目に対する操作に変わります。
この項目は必須とします。
モデルBの詳細画面に、モデルCの新規作成を行うボタンが用意されます。これはモデルBとモデルCの間に外部キーの関係を設定したためです。
モデルCの新規作成画面です。モデルBの主キー値が転記されています。ルックアップも動作しています。
モデルCの新規作成を行ってみます。
モデルCの詳細画面では、順序値が割り当てられた項目「モデルCの主キー」も確認できます。
モデルBの詳細画面では、自身に紐づくモデルCの一覧が表示されます。赤枠部分と青枠部分が、それぞれ同じデータを指しています。
設定方法
モデルC
項目名
型
外部キー
その他
モデルBがもつモデルAの主キー
文字列
モデルBの「モデルA主キー」
隠し項目
モデルBがもつモデルBの主キー
文字列
モデルBの「モデルB主キー連番」
隠し項目
モデルCの主キー
文字列
-
順序値とする。
動作例