一つの子に複数の親を紐づける

最終更新日: 2022年5月19日
R8 | R9

モデルの説明

品目モデル、倉庫モデル、倉庫在庫モデルの関係を示します。倉庫在庫モデルは親となる品目モデル、倉庫モデルの主キーを保持し、かつ、これらを自身の複合主キーとして管理します。

品目、倉庫、倉庫在庫の関係

倉庫モデル

倉庫モデルのデータ例を示します。

倉庫モデル

品目モデル

品目モデルのデータ例を示します。

品目モデル

倉庫在庫モデルの登録 - 倉庫から

  1. 倉庫モデルの詳細画面から(子である)倉庫在庫モデルの作成を行います。
    倉庫在庫モデルの新規作成
  2. 親となる倉庫は、この時点で確定しています。
    親(倉庫)は初期値としてセットされている
  3. もう一方の親である、品目を手動で設定します。
    品目は主キーであるため、未設定で登録することはできない、というルールです。
    品目をセットする
  4. 子である倉庫在庫モデルの登録が完了しました。いずれの親の画面へも遷移することができます。
    倉庫在庫モデルの登録が完了した

倉庫在庫モデルの登録 - 品目から

  1. 今度は、品目モデルの詳細画面から(子である)倉庫在庫モデルの作成を行います。
    倉庫在庫モデルの新規作成
  2. 親となる品目は、この時点で確定しています。
    親(品目)は初期値としてセットされている
  3. もう一方の親である、倉庫を手動で設定します。倉庫は主キーであるため、未設定で登録することはできない、というルールです。
    倉庫をセットする
  4. 子である倉庫在庫モデルの登録が完了しました。いずれの親の画面へも遷移することができます。
    倉庫在庫モデルの登録が完了した

親の詳細画面に紐づく子の確認

品目モデルの詳細画面では、紐づく(子である)倉庫在庫モデルの一覧を確認できます。

品目モデルの詳細画面

同様に、倉庫モデルの詳細画面でも、紐づく(子である)倉庫在庫モデルの一覧を確認できます。

倉庫モデルの詳細画面

定義方法

3つのモデル

今回、用意する品目、倉庫、倉庫在庫モデルを定義します。

定義するモデル一覧

品目モデル

品目モデルは、品目コードと品目名を管理します。

品目モデルの定義

倉庫モデル

倉庫モデルは、倉庫名と住所を管理します。

倉庫モデルの定義

倉庫在庫モデル

倉庫在庫モデルです。

倉庫在庫モデルの定義

「品目」項目はモデル参照で、主キーかつ外部キーとします。
参照項目は「品目コード」としています。(「親モデルが存在しない子モデルの作成を許可する > 親の任意の項目で選択できるようにする」参照)

品目項目のモデル参照定義
品目項目の主キー、外部キー定義

「倉庫」項目もモデル参照で、主キーかつ外部キーとします。

倉庫項目のモデル参照定義
倉庫項目の主キー、外部キー定義