ツリーテーブル

Collection: TreeCommunity Edition+

概要

ツリーテーブルは、組織構造、商品カテゴリ、地域階層、部門ディレクトリ、ナレッジベースのディレクトリなど、上下関係のあるデータの保存に適しています。ツリーテーブルでは、隣接リスト構造を使用して親子関係を保存し、各レコードは自身の親ノードを指定できます。

ツリーテーブルはメインデータベースのページからのみ作成できます。外部データベース、REST API データソース、外部 NocoBase データソースでは、ツリーテーブルの作成はサポートされていません。

適用シーン

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

  • 会社の組織構造、部門階層
  • 商品カテゴリ、ナレッジベースのディレクトリ、ドキュメントディレクトリ
  • 省・市・区、販売地域、サービス拠点の階層
  • BOM カテゴリ、設備カテゴリ、資産カテゴリ

作成設定

メインデータベースで「Create collection」をクリックし、「Tree collection」を選択すると、ツリーテーブルを作成できます。

20240324143228

ツリーテーブルの作成設定は、通常のテーブルと基本的に同じです。

設定説明
Collection display nameデータテーブルを画面上で表示する名称です。例:「組織構造」「商品カテゴリ」「地域階層」。
Collection nameAPI、リレーションフィールド、権限、ワークフローなどで内部参照するための、データテーブルの識別名称です。
Inherits継承する親テーブルを選択します。メインデータベースが PostgreSQL の場合のみ表示されます。
Categoriesデータテーブルのカテゴリです。カテゴリはデータテーブル管理画面での整理方法にのみ影響し、データテーブルの構造は変更しません。
Descriptionデータテーブルの説明です。このツリーテーブルでどのような階層データを保存するか、誰が管理するか、どのページのフィルターに使用するかなどを記載できます。
Preset fieldsプリセットフィールドです。ツリーテーブルの作成時には、システムフィールドとツリーテーブルの組み込みフィールドを残すことを推奨します。

組み込みフィールド

ツリーテーブルの作成後、通常は次の組み込みフィールドが含まれます。parentIdparentchildren は、ツリー階層の関係を保存するために使用されます。

フィールドフィールド名説明
IDidレコードを一意に識別するためのデフォルトの主キーフィールドです。
作成日時createdAtレコードの作成日時を自動的に記録します。
作成者createdByレコードを作成したユーザーを自動的に記録します。
更新日時updatedAtレコードが最後に更新された日時を自動的に記録します。
更新者updatedByレコードを最後に更新したユーザーを自動的に記録します。
Parent IDparentId親ノードの ID を保存します。ルートノードでは通常、空になります。
Parentparent現在のテーブル内の親ノードを参照する多対一のリレーションフィールドです。
Childrenchildren現在のノードの子ノードを表す一対多のリレーションフィールドです。
スペースspaceマルチスペースプラグインを有効にすると使用でき、スペース単位でデータを分離します。マルチスペースを有効にしていない場合は表示されません。

20240324143555

注意

ツリーテーブルのデータでは、循環関係が発生しないようにしてください。たとえば、A の親ノードが B で、B の親ノードが A になるような関係です。循環関係があると、ツリー表示やフィルター結果に異常が発生します。

主キーフィールド

ツリーテーブルにも通常のテーブルと同様に、主キーフィールドが必要です。ツリー関係フィールドは、親ノード ID を介して同じテーブル内の主キーのレコードに関連付けられます。

ツリーテーブルに主キーがない場合は、データテーブルの編集時に「Record unique key」を設定してください。設定しないと、ページブロックでレコードを正しく表示または編集できない場合があり、ツリー表示でもノードを安定して特定できない可能性があります。

ページ設定での使用

ツリーテーブルでは、通常のテーブルの多くのデータブロックを使用して、データの作成、削除、更新、検索を行えます。さらに、ツリー機能と組み合わせて使用することもできます。

ブロック用途
テーブルブロックツリー構造のレコードを表示し、上下関係の確認や管理に使用します。
フォームブロックツリーノードのレコードを1件追加または編集します。
詳細ブロックツリーノードの詳細を1件表示します。
ツリーフィルターブロックツリー構造で他のデータブロックをフィルタリングします。カテゴリ、組織、地域などの階層フィルターによく使用されます。

編集設定

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

ツリーテーブルの親子関係フィールドは、通常、むやみに削除したり別の用途に変更したりしないことを推奨します。階層構造を調整する場合は、まずレコードデータの親ノード関係を変更してください。

データテーブルの削除

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

ツリーテーブルを削除すると、このテーブルの Collection メタデータ、実際のデータテーブル、ツリー関係データが削除されます。削除する前に、ページブロック、ツリーフィルターブロック、リレーションフィールド、権限、ワークフロー、API が引き続きこのテーブルに依存していないか確認してください。

警告

ツリーテーブルは、他のブロックのフィルター条件として使用されることがよくあります。ツリーテーブルを削除すると、関連するツリーフィルターブロックや、そのカテゴリ階層に依存するページ設定が機能しなくなる可能性があります。

関連リンク