一つの子に複数の親を紐づける
最終更新日: 2021年7月20日
品目モデル、倉庫モデル、倉庫在庫モデルの関係を示します。倉庫在庫モデルは親となる品目モデル、倉庫モデルの主キーを保持します。
倉庫モデルのデータ例を示します。
品目モデルのデータ例を示します。
倉庫モデルの詳細画面から(子である)倉庫在庫モデルの作成を行います。
親となる倉庫は、この時点で確定しています。
もう一方の親である、品目を手動で設定します。
子である倉庫在庫モデルの登録が完了しました。いずれの親の画面へも遷移することができます。
今度は、品目モデルの詳細画面から(子である)倉庫在庫モデルの作成を行います。
親となる品目は、この時点で確定しています。
もう一方の親である、倉庫を手動で設定します。
子である倉庫在庫モデルの登録が完了しました。いずれの親の画面へも遷移することができます。
品目モデルの詳細画面では、紐づく(子である)倉庫在庫モデルの一覧を確認できます。
同様に、倉庫モデルの詳細画面でも、紐づく(子である)倉庫在庫モデルの一覧を確認できます。
今回のサンプルでは、同じ品目(ID)と倉庫(ID)の組み合わせを複数、登録できないようにしています。具体的には品目IDと倉庫IDのペアで一意制約を設定しています。そのため、重複するデータを登録することはできません。
今回、用意する品目、倉庫、倉庫在庫モデルを設定します。
品目モデルは、品目コードと品目名を管理します。
倉庫モデルは、倉庫コード、倉庫名、住所を管理します。
倉庫在庫モデルは、品目と倉庫を主キーかつ外部キーとして用意します。
「品目」項目はモデル参照(検索)です。参照先モデル項目は(主キーである)品目IDではなく、現場の利用者が使いやすいと思われる品目コードを表示する設定としました。
品目コードを外部キーとします。また、倉庫コードとのペアで一意制約を設定しています。(一意制約名は任意ですが、モデル名の英字表記をアンダースコア文字で連結するとわかりやすいです。)
「倉庫」項目もモデル参照(検索)です。参照先モデル項目は(主キーである)倉庫IDではなく、現場の利用者が使いやすいと思われる倉庫コードを表示する設定としました。
倉庫コードを外部キーとします。また、品目コードとのペアで一意制約を設定しています。(一意制約名は任意ですが、モデル名の英字表記をアンダースコア文字で連結するとわかりやすいです。)
モデルの説明
例
倉庫モデル
品目モデル
倉庫在庫モデルの登録 - 倉庫から
倉庫在庫モデルの登録 - 品目から
親の詳細画面に紐づく子の確認
一意制約
設定方法
3つのモデル
品目モデル
倉庫モデル
倉庫在庫モデル