継承テーブル

Data source: MainCommunity Edition+

概要

継承テーブルは通常のテーブルを拡張したもので、複数のデータテーブルで共通のフィールドを共有しながら、各子テーブルに固有のフィールドも持たせたい場合に適しています。

たとえば、まず「資産」親テーブルを作成し、資産番号、資産名、購入日、担当者などの共通フィールドを保存します。その後、「コンピューター資産」「車両資産」「オフィス家具」などの子テーブルを派生させます。子テーブルは親テーブルのフィールド構造を継承しながら、独自のフィールドを追加で定義できます。

注意

継承テーブルは、メインデータベースが PostgreSQL の場合にのみ作成できます。その他のメインデータベース、外部データベース、REST API データソース、外部 NocoBase データソースでは、継承テーブルをサポートしていません。

適用シーン

継承テーブルは、次のような業務シーンに適しています。

  • 資産親テーブルからコンピューター資産、車両資産、オフィス家具を派生させる
  • 人員親テーブルから従業員、外部委託スタッフ、訪問者を派生させる
  • 事項親テーブルからタスク、バグ、要件を派生させる
  • 契約親テーブルから購買契約、販売契約、サービス契約を派生させる

継承テーブルを使用する前提は、これらのオブジェクトに安定した共通フィールドがあり、子テーブル間の違いが主に少数の固有フィールドにあることです。

作成設定

メインデータベースで「Create collection」をクリックし、通常のテーブルまたは継承をサポートする作成画面を選択すると、Inherits から親テーブルを選択できます。

20240324085907

設定説明
Collection display nameデータテーブルを画面上で表示する名前です。たとえば「コンピューター資産」「車両資産」「オフィス家具」などです。
Collection nameAPI、リレーションフィールド、権限、ワークフローなどで内部的に参照するデータテーブルの識別名です。
Inherits継承する親テーブルを選択します。現在のデータテーブルは親テーブルのフィールド構造を継承し、独自のフィールドも追加で定義できます。
Categoriesデータテーブルの分類です。分類はデータテーブル管理画面での整理方法にのみ影響し、データテーブルの構造は変更しません。
Descriptionデータテーブルの説明です。この子テーブルに保存するデータの種類、派生元の親テーブル、管理担当者などを記載できます。
Preset fieldsプリセットフィールドです。継承テーブルでも通常のテーブルと同様に、ID、作成日時、作成者、更新日時、更新者などのフィールドを保持することが一般的です。

継承テーブルでは、通常のテーブルと同じブロックおよびフィールド設定を使用できます。ページブロックから見ると、継承テーブルもレコードの追加・削除・変更・検索が可能なデータテーブルです。

注意

継承テーブルは、構造がよく似た業務オブジェクトに適しています。オブジェクトごとに業務フロー、権限、ページ構成の違いが大きい場合は、通常のテーブルに分けてリレーションフィールドで接続するほうが、一般的に分かりやすくなります。

組み込みフィールド

継承テーブルは親テーブルに存在するフィールドを継承すると同時に、独自のフィールドも追加できます。

フィールドの種類説明
親テーブルのフィールド子テーブルは、資産番号、資産名、担当者など、親テーブルの共通フィールドを継承します。
子テーブルのフィールド子テーブルには、コンピューター資産の「CPU 型番」や車両資産の「ナンバープレート」など、固有のフィールドを追加で定義できます。
システムフィールド作成時に Preset fields を保持すると、ID、作成日時、作成者、更新日時、更新者などのフィールドが含まれます。
注意

親テーブルのフィールドは、それを継承するすべての子テーブルに影響します。親テーブルのフィールドを変更する前に、子テーブルのページ、権限、ワークフロー、API がこれらのフィールドに依存していないか確認してください。

主キー

継承テーブルにも、通常のテーブルと同様に主キーフィールドが必要です。テーブルを作成する際は、ID プリセットフィールドを保持することをおすすめします。デフォルトの主キータイプは Snowflake ID (53-bit) です。

接続または同期後の継承テーブルに主キーがない場合は、データテーブルの編集時に「Record unique key」を設定してください。設定しないと、ページブロックでレコードを正しく表示または編集できない場合があります。

ページ設定での利用

継承テーブルは、通常のテーブルでサポートされている大半のページブロックで使用できます。一般的には、異なる子テーブルをそれぞれ独立したテーブル、フォーム、詳細、またはカンバンブロックとして設定します。

ブロック用途
テーブルブロック子テーブルのレコードを表示、フィルタリング、並べ替え、一括処理します。
フォームブロック子テーブルのレコードを1件追加または編集します。
詳細ブロック子テーブルのレコードの詳細を表示します。
カンバンブロックステータス、フェーズ、担当者などのフィールドで子テーブルのレコードをグループ化して表示します。

設定の編集

データテーブル一覧で、継承テーブルの右側にある「Edit」をクリックすると、データテーブルの表示名、分類、説明、簡易ページネーションモード、「Record unique key」などの設定を変更できます。

既存の業務設定で広く使用されている継承関係を、頻繁に変更することはおすすめしません。ページブロック、リレーションフィールド、権限、ワークフローが現在のフィールド構造に依存している可能性があります。

データテーブルの削除

データテーブル一覧で、継承テーブルの右側にある「Delete」をクリックすると、継承テーブルを削除できます。

継承テーブルを削除すると、その子テーブルの Collection メタデータとメインデータベース内の実データテーブルが削除されます。削除する前に、ページブロック、リレーションフィールド、権限、ワークフロー、API がこの子テーブルを使用していないか確認してください。

警告

継承テーブルを削除しても、親テーブルが自動的に削除されるわけではありません。依存オブジェクトを削除するかどうかは、削除確認時のオプションによって決まります。操作する前に、親テーブルや他の子テーブルを引き続き保持する必要がないか確認してください。

関連リンク