第 2 章:データモデリング — 2 つのテーブルでチケットシステムを完成
前の章で NocoBase をインストールし、インターフェースを理解しました。ここからは、チケットシステムの骨格を組み立てます——データモデルの定義です。
この章では、チケットと分類の 2 つのデータテーブルを作成し、フィールドタイプ(単行テキスト、ドロップダウン選択、多対一リレーションなど)を設定して、テーブル間のリレーションを構築します。データモデルはシステムの基盤です。どのデータを保存するか、データ同士がどう関係しているかを先に整理しておけば、後のインターフェース構築や権限設定がスムーズに進みます。
2.1 データテーブルとフィールドとは
Excel を使ったことがあれば、データテーブルの理解は簡単です。

たとえば、これから作る「チケットテーブル」は Excel の表のようなものです。各列がフィールド(タイトル、ステータス、優先度……)、各行が 1 件のチケットレコードになります。
ただし、NocoBase は Excel より もはるかに強力です。複数のデータテーブルタイプをサポートしており、タイプごとに異なる機能が備わっています。
今回は通常テーブルとツリーテーブルを使います。他のタイプは必要になったときに学びましょう。
データソース管理に入る:左下の 「データソース管理」 アイコン(歯車の隣のデータベースアイコン)をクリックすると、「メインデータソース」が表示されます。すべてのテーブルはここに作成します。

2.2 コアテーブルの作成:チケット
本題に入りましょう。まずシステムのコアとなるチケットテーブルを作成します。
テーブルの作成
- データソース管理ページで メインデータソース をクリックして開きます

- 「データテーブルを作成」 をクリックし、「通常テーブル」 を選択します

- データテーブル名:
tickets、データテーブルタイトル:チケット

テーブル作成時、システムはデフォルトでシステムフィールドのセットにチェックを入れます。各レコードのメタ情報が自動的に記録されます。
これらのシステムフィールドはデフォルトのままで構いません。手動で管理する必要はありません。特定の場面で不要な場合は、チェックを外すこともできます。
基本フィールドの追加
テーブルが作成できたら、次はフィールドを追加します。チケットテーブルの 「フィールドを設定(Configure fields)」 をクリックすると、先ほどデフォルトのシステムフィールドがリストに表示されています。


右上の 「フィールドを追加(Add field)」 ボタンをクリックすると、フィールドタイプのドロップダウンリストが展開されます。追加したいフィールドタイプを選択してください。

まずチケット自体のフィールドを追加し、リレーションフィールドは後で追加します。
1. タイトル(単行テキスト)
各チケットには、問題を簡潔にまとめるタイトルが必要です。「フィールドを追加」 → 「単行テキスト」 を選択します。

- フィールド名:
title、フィールドタイトル:タイトル - 「バリデーションルールを設定」 をクリックし、「必須」 ルールを追加します

2. 説明(Markdown(Vditor))
問題を詳細に説明するためのフィールドで、書式設定に対応し、画像やコードの貼り付けが簡単にできます。「フィールドを追加」→「Media」カテゴリには 3 つの選択肢があります。
ここでは Markdown(Vditor) を選びます。

- フィールド名:
description、フィールドタイトル:説明

3. ステータス(ドロップダウン - 単一選択)
チケットの提出から完了まで、進捗を追跡するためのステータスが必要です。
- フィールド名:
status、フィールドタイトル:ステータス - 選択肢を追加(各選択肢には「オプション値」と「オプションラベル」を入力し、色は任意):

まず選択肢を入力して保存します。その後、再度フィールドの 「編集(Edit)」 をクリックすると、「デフォルト値」で 「未対応」 を選択できるようになります。


初回作成時にはまだ選択肢データが存在しないため、デフォルト値を選べません。保存してから再度設定してください。
なぜドロップダウン単一選択を使うのか?ステータスは固定の選択肢であり、ドロップダウンを使うことでユーザーが自由入力するのを防ぎ、データの一貫性を保つことができます。
4. 優先度(ドロップダウン - 単一選択)
チケットの緊急度を区別し、担当者が優先度順に対応できるようにします。
- フィールド名:
priority、フィールドタイトル:優先度 - 選択肢を追加:
ここまでで、チケットテーブルには 4 つの基本フィールドが追加されました。しかし、チケットには「分類」が必要ですよね?たとえば「ネットワーク問題」「ソフトウェア障害」など。
分類をドロップダウンで作ることもできますが、すぐに問題が見つかるでしょう。分類にはサブ分類がある可能性があります(「ハードウェア問題」の下に「ディスプレイ」「キーボード」「プリンター」など)。ドロップダウンでは対応しきれません。
分類を専門に管理するもう 1 つのテーブルが必要です。しかも、NocoBase のツリーテーブルで作るのが最適です。
2.3 分類ツリーテーブルの作成:分類に階層を持たせる
ツリーテーブルとは
ツリーテーブルは特殊なデータテーブルで、親子関係を組み込みでサポートします。各レコードは「親ノード」を持つことができます。階層構造を持つデータには最適です。
通常テーブルの場合、「親分類」フィールドを手動で作成してこの関係を実現する必要があります。一方、ツリーテーブルは自動的にこれを処理してくれ、ツリー表示や子レコードの追加などの操作もサポートするため、手間が大幅に省けます。
テーブルの作成
-
データソース管理に戻り、「データテーブルを作成」 をクリックします
-
今度は 「ツリーテーブル」(通常テーブルではありません!)を選択します

-
データテーブル名:
categories、データテーブルタイトル:チケット分類

作成後、テーブルにはシステムフィールドに加えて 「Parent」 と 「Children」 の 2 つのリレーションフィールドが自動的に表示されます。これがツリーテーブルの特別な機能です。Parent で親ノードに、Children ですべての子ノードにアクセスでき、手動で追加する必要はありません。


