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

最終更新日: 2020年3月14日
R8 | R9

モデルの説明

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

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

倉庫モデル

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

図2 倉庫モデル

品目モデル

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

図3 品目モデル

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

倉庫モデルの詳細画面から(子である)倉庫在庫モデルの作成を行います。

図4 倉庫在庫モデルの新規作成

親となる倉庫は、この時点で確定しています。

図5 親(倉庫)は初期値としてセットされている

もう一方の親である、品目を手動で設定します。品目は主キーであるため、未設定で登録することはできない、というルールです。

図6 品目をセットする

子である倉庫在庫モデルの登録が完了しました。いずれの親の画面へも遷移することができます。

図7 倉庫在庫モデルの登録が完了した

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

今度は、品目モデルの詳細画面から(子である)倉庫在庫モデルの作成を行います。

図8 倉庫在庫モデルの新規作成

親となる品目は、この時点で確定しています。

図9 親(品目)は初期値としてセットされている

もう一方の親である、倉庫を手動で設定します。倉庫は主キーであるため、未設定で登録することはできない、というルールです。

図10 倉庫をセットする

子である倉庫在庫モデルの登録が完了しました。いずれの親の画面へも遷移することができます。

図11 倉庫在庫モデルの登録が完了した

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

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

図12 品目モデルの詳細画面

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

図13 倉庫モデルの詳細画面

定義方法

3つのモデル

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

図14 定義するモデル一覧

品目モデル

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

図15 品目モデルの定義

倉庫モデル

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

図16 倉庫モデルの定義

倉庫在庫モデル

倉庫在庫モデルは、品目と倉庫を主キーかつ外部キーとして用意します。

図17 倉庫在庫モデルの定義

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

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

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

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