はじめに
Wagby では「1件のデータに複数のデータが存在する」関係を実現するために「外部キー」という考え方を用意しています。
具体的には、図1のようになります。
ここで主となるモデルを「親」、親に従属するモデルを「子」と表現すると、親と子には次のような関係が成立します。
- 親モデルと子モデルは互いに参照できるようになっている。
- 親モデルが「参照先」となる。子モデルが「参照元」となる。子モデルは、親モデルのキーを持っており、これを「外部キー」という。
- 一つの親モデルに対して、複数の子モデルを紐付けることができる。(1:N の関係)
- 子モデルを独立して扱える。具体的には子モデルについての検索や一覧表示の処理を行なうことができる。
- 親モデルが削除された場合、子モデルも同時に削除される。
内容
- (1) 親子関係を設定する
- 「顧客)」と「サポート」の二つのモデルを扱います。このとき「一人の顧客に対して、複数のサポート記録がある」という関係を持ちます。親が顧客(1) で、子がサポート(N)となります。
- (2) 一つの親に複数の子を紐づける
- 「顧客」を親モデルとし、「サポート」「購買履歴」の二つの子モデルを用意する例を説明します。
- (3) 親モデルが存在しないと子モデルの作成が行えないようにする
- 親モデルの詳細画面に、子モデルの新規登録ボタンを用意します。かつ、子モデルの新規登録ボタンは子モデル側には用意しません。これによって子のデータが存在するとき、必ず(紐づく)親は存在するという運用を実現します。
- (4) 一つの子に複数の親を紐づける
- 二つの親モデル「倉庫」「品目」を参照する子モデル「倉庫在庫」の例を説明します。
- (5) 連携に関する設定
- 子モデル側で設定するオプションを紹介します。
- (6) 子モデルの同時更新
- 外部キー関係において、親モデルの更新画面上で直接、子モデルの更新を行うことができます。
対象とするUI
機能 |
標準UI |
スマートフォンUI |
親子関係UI表示 |
○ |
○ |
子モデル同時更新 |
○ |
△ (一部機能は未対応) |