フォーム間のリレーション
フォーム間のリレーションを作成する方法
フォーム間のリレーションの作成は、情報を賢く整理するための不可欠な機能です。フォームを連携させることで、データを重複させる必要がなくなり、アプリケーションの一貫性、拡張性、保守性を確保できます。
Netuno の大きな利点の1つは、データモデル図を自動的に生成できることです。
リレーションは、異なるテーブルのデータがどのように相互作用するかを定義します。この関連はユーザーインターフェース(UI)に直接反映され、あるフォームのフィールドが別のフォームから情報を自動的に取得できるようになります。
シンプルな図: 小規模モジュールの初期ロジックを検証するのに最適です。

複雑な図: 大規模アプリケーションにおけるツールの堅牢性を示し、複数の依存関係とデータフローをマッピングします。

Select タイプのリレーションフィールドの作成
Select フィールドは2つのフォーム間にリレーションを作成します。手動で入力する代わりに、ドロップダウンリストから値を選択できます。このリストは、別のフォームにすでに存在するデータで埋められます。
ここでは 車両 と 色 のフォームを例にします。
いつ使うか? 「多対一」(N-1)のリレーションがある場合に select を使用します。
例: 多くの車両が1つの色を持てます。毎回「青」と入力する代わりに、登録済みの色リストから「青」を選択します。
- 対象フォーム: 車両(select フィールドを作成する場所)。
- 参照元フォーム: 色(色リストのデータの取得元)。
要件
開始する前に、次の点を確認してください。
-
車両 と 色 の両方のフォームが Netuno に作成済みであること。詳細については、フォームの作成 に関するガイドを参照してください。
-
参照元フォーム(色)に、いくつかレコードがすでに登録されていること(例: 「青」「赤」「銀」)。詳細については、フィールドの作成 に関するガイドを参照してください。
Select の作成と設定
車両 フォームに select タイプのフィールドを追加し、色 フォームからデータを「取得」できるようにします。

1 - 対象フォームにアクセスする
- Backoffice でフィールド管理に移動し、車両 フォームの編集を開きます。
2 - 新しいフィールドを作成する
- 「新しいフィールドを作成」をクリックします。
3 - タイトルと列名を定義する
- フィールドのタイトル: ユーザーに表示される親しみやすい名前を付けます。例: 自動車の色。
- 列名: データベース内のフィールドの技術的な名前です。
ベストプラクティス: リレーションフィールドを作成するときは、常に 列名 に _id 接尾辞を使用してください。これにより、この列が「青」というテキストではなく、色 フォーム内の「青」レコードへの参照 ID を保存していることが明確になります。例: 自動車_色_id。
4 - データ型を選択する
- 種類 フィールドで、リストから
select - selectオプションを選択します。
5 - リンク(リレーション)を設定する

selectを選択すると、リンク という新しいフィールドが表示されます。- 設定 ボタンをクリックします。
- モーダルが開き、すべてのフォームが一覧表示されます。ここで参照元フォームを選択します。
- 一覧表示したいデータを含むフォームを選択します。この例では 色 - 色 をクリックします。
- 選択したら、モーダルの 閉じる ボタンをクリックします。
6 - 変更を保存する
- フィールド管理で 保存 ボタンをクリックして、すべての設定を適用します。
結果
完了です!「表示」モードで 車両 フォームのレコードを追加または編集すると、「自動車の色」フィールドがドロップダウンリストとして表示され、色フォームに登録されているすべての色が表示されます。
Multiselect タイプのリレーションフィールドの作成
Multiselect フィールドは「多対多」(N-M)のリレーションを作成します。1つのフィールドでリストから複数の項目を選択できます。
ここでは 人物、役割、人物-役割 のフォームを例にします。
いつ使うか? 1つのレコードが複数の他のレコードと関連し、その逆も成り立つ場合に multiselect を使用します。 例: 多くの人物が多くの役割を持てます。
- ある人物(例: 「アナ」)は「管理者」と「マネージャー」の役割を持てます。
- 「マネージャー」の役割は複数の人物(例: 「アナ」「ブルーノ」「チアゴ」)に関連付けられます。
これを実現するには、3つのフォームが必要です。
- 「親」フォーム(人物): ユーザーに
multiselectフィールドが表示されるフォーム。 - 「ソース」フォーム(役割): リストのオプションの取得元(例: 「管理者」「マネージャー」)。
- 「結合」フォーム(人物-役割): 人物 と 役割 の間の関連を保存する「ブリッジ」フォーム。
要件
開始する前に、次の点を確認してください。
- 「親」フォーム(人物)が作成済みで、いくつかレコードがあること(例: 「アナ」「ブルーノ」「ルーカス」)。
- 「ソース」フォーム(役割)が作成済みで、いくつかレコードがあること(例: 「管理者」「マネージャー」「コンサルタント」)。
Multiselect の作成と設定
設定は4つのステップで行います。
ステップ 1: 結合フォーム(人物-役割)を作成する
まず、「ブリッジ」フォームを作成します。
1 - 管理 > フォームに移動 し、「新しいフォームを作成」をクリックします。
2 - フォームのタイトル: 人物-役割。
3 - テーブル名: 人物_役割(または同様の名前)。
4 - 重要: 親 フィールドで、主要な「親」フォームを選択します。この場合は 人物 です。これにより、人物-役割 がサブフォームになります。
5 - 保存 をクリックします。

ステップ 2: 結合フォームのフィールドを設定する
人物-役割 フォームに「ブリッジ」フィールドを追加します。
1 - 作成したばかりの 人物-役割 フォームのフィールド管理にアクセスします。
2 - select タイプのフィールドを2つ追加します。1つは人物を指し、もう1つは役割を指します。
フィールド1(人物へのリンク):

- フィールドのタイトル: 人物の名前
- 列名:
人物_名前_id(_id の慣例に従う) - 種類:
select - select - リンク: 設定 をクリックし、人物 フォームのメインフィールドを選択します。例:
人物:名前。 - 保存 をクリックします。
フィールド2(役割へのリンク):
- フィールドのタイトル: 人物の役割。
- 列名:
役割_人物_id。 - 種類:
select - select。 - リンク: 設定 をクリックし、役割 フォームのメインフィールドを選択します。例:
役割:役割_id。 - 保存 をクリックします。

ステップ 3: 「親」フォームに multiselect フィールドを作成する
「ブリッジ」(人物-役割)が準備できたので、人物 フォームに戻って最終的なフィールドを作成できます。
1 - 人物 フォームのフィールド管理に移動します。
2 - 「新しいフィールドを作成」をクリックします。
3 - フィールドのタイトル: 人物の役割。
4 - 列名: 人物_役割_id。
5 - 種類: multiselect - multiselect。
ステップ 4: multiselect フィールドを設定する
multiselect タイプを選択すると、参照 と リンク という2つの新しい設定フィールドが表示されます。
1 - 参照(リレーションを保存する場所)
- このフィールドは Netuno に次のことを指定します: 「『ブリッジ』フォームのどのフィールドが私(人物)を参照していますか?」
- 設定 をクリックします。
- 結合フォーム(人物-役割)と、ステップ2で作成したフィールド(フィールド1)を選択します。例:
人物_役割:人物_名前_id。
2 - リンク(オプションの取得元)
- このフィールドは次のことを指定します: 「『ブリッジ』フォームのどのフィールドがオプション(役割)を参照していますか?」
- 設定 をクリックします。
- 結合フォーム(人物-役割)と、ステップ2で作成したフィールド(フィールド2)を選択します。例:
人物_役割:役割_人物_id。
3 - 変更を保存する
- フィールド管理で 保存 ボタンをクリックして、すべての設定を適用します。

結果
完了です!「表示」モードで 人物 フォームのレコードを追加または編集すると、「人物の役割」フィールドが複数選択ボックスとして表示されます。リスト(役割 フォームから取得)から複数の役割を選択でき、Netuno はそれらの関連を 人物-役割 フォーム内に自動的に保存します。
ご不明な点がある場合は、このページの最後にあるコミュニティやその他のチャネルを通じてお問い合わせください。
良い開発を!