メインモデルとサブモデル

最終更新日: 2022年11月14日

概要

1つのモデルで複数の画面を作成する場合は、まずメインとなるモデル(以後「メインモデル」と呼びます)を設定した後に、その設定内容をコピーして新しいモデル(以後「サブモデル」と呼びます)を設定します。 1つのメインモデルに対して複数のサブモデルを用意することもできます。

メインモデルとサブモデルの構成イメージ
  • 画面を複数用意できますが、データをやり取りするモデルそのものは1つです。
  • データベース上では、メインモデルとサブモデルは共通のテーブルが使用されます。
  • サブモデルはメインモデルのサブセットの関係にあるので、既存項目(主キーを除く)を削除して減らすことはできますが、メインモデルにない新たな項目を追加設定することはできません。[詳細...]

サブモデルの作成方法

メインモデルを一つ選択します。

メインとなるモデルを一つ選択する

ギアアイコンから「テンプレート > サブモデル」を選択します。

サブモデルを作成する

標準では、モデル名に「- サブモデル」と付与されたモデルが新規で作成されます。

サブモデルが作成された

サブモデルの設定を開きます。メインモデルへのリンクが用意されていることがわかります。モデル名を適切に変更してください。

サブモデルのモデル名を変更する

「その他 > モデル情報」の「概要」に、サブモデルの用途を記述するとよいでしょう。ここでは "スマートフォン版" と設定してみました。このサブモデルはスマートフォンUI用であるという意図です。

概要情報を入力する(1)
概要情報を入力する(2)

具体的な活用シーン

スマートフォン

スマートフォン版の画面は、標準版のサブセット(一部)という扱いにすることを推奨します。つまりスマートフォンで使うモデルをサブモデルとします。

その上で、サブモデルに対して「スマートフォンUIを作成する」設定を有効にします。

サブモデルをスマートフォン用にする

複数の一覧表示画面

サブモデルを使って、1つのモデルに複数の一覧表示画面を作成する、といったことができます。ユーザごとにアクセスする画面を分けたいという場合にも有効です。

セキュリティ

権限のあるユーザにはメインモデルを見せる、権限のないユーザには項目の少ないサブモデルを見せるという設計に適用できます。

メインモデルを変更する

サブモデルを作成したあと、(自身の)メインモデルを変更することができます。 「画面 > その他 > モデルの関連性」から「メインモデル名」を指定します。

メインモデル名を変更する

仕様・制約

  • サブモデルはメインモデルの部分集合のため、テーブル構造が変わるような変更を行うことはできません。 よって、サブモデルを設定する場合、メインモデルで設定された以下の点は変更してはいけません。 (変更した場合は、ビルド時もしくは実行時にエラーとなります。)
    • 項目の型
    • 「データベース保存」対象の項目を追加すること。(データベース非保存の自動計算項目やルックアップ項目等はサブモデルへ追加することができます。)
    • モデル項目設定シートの「必須チェック」設定について、メインモデルと異なる設定をすること(メインモデル、サブモデルともに同じ設定にする必要があります。)
  • サブモデルのサブモデルを設定することはできません。サブモデルは常にメインモデルと関係づけするようにしてください。
  • サブモデルでデータの削除を行う場合、メインモデルに含まれる「モデル参照(チェックボックス)」は、必ずサブモデルでも用意してください。(サブモデルで不要な場合は、隠し項目とすると良いでしょう。)この対応を行わない場合、サブモデルからのデータ削除に失敗します。
  • メインモデルとサブモデルで、同じ項目に対してモデル参照先の項目を変更する場合、モデル参照先の「型」は同じとなるように配慮してください。

よくある質問と回答

サブモデルにメインモデルと違うデータ権限を設定することはできますか。

サブモデルにメインモデルと違うデータ権限を設定することは可能です。

例えば、メインモデルは権限3とし、サブモデル1は権限2、サブモデル2は権限3にするということができます。