データベースビューを接続する
Data source: MainCommunity Edition+概要
データベース内のビューを接続します。たとえば、DBA が管理する財務レポートビュー、フィルタリング済みの顧客ビュー、複数システム間で同期された集約ビューなどです。データベースに既に定義されているクエリロジックを再利用する場合に適しています。
メインデータベースの接続アカウントが所有する範囲内の通常のビューに対応しています。マテリアライズドビューには対応していません。アカウントに他の 所有者のビューを参照する権限がある場合でも、それらのビューは接続可能な一覧には表示されません。接続する前に、ビューのフィールドに安定した列名が設定されていること、およびフィールドタイプが NocoBase で認識可能であることを確認してください。
データベースビューを接続する
- システム機能のデータソースメニューをクリックして、データソースのホームページにアクセスします。
- データソース一覧から Main データソースを選択し、「Configure」操作をクリックしてメインデータベースにアクセスします。
- メインデータベースの管理画面で「Create collection」をクリックし、「Connect to database view」を選択します。

Source collections は、データベースビューから推測されたソースデータテーブルです。view 内のフィールドが主にどの既存データテーブルに由来するかを特定し、フィールドマッピング時に選択可能な Field source を限定します。
推測結果は設定を迅速に行うための補助情報です。view にフィールド名の変更、計算、集計、複雑な join が含まれる場合、結果が完全に正確でない、または推測できないことがあります。その場合は Fields で手動確認してください。
フィールドマッピング
フィールドマッピングは、データベースビ ューを接続した後に必ず確認する必要がある設定です。view を接続すると、NocoBase はまず各ビューフィールドのソースとデータベースタイプを推測します。ソースフィールドまで推測できる場合は、既存フィールドの Field type、Field interface、Field display name が自動的に引き継がれます。推測できない場合は、データベースフィールドのタイプに基づいて初期 Field type が設定されるため、フィールドタイプとインターフェース設定を手動で確認する必要があります。 フィールド設定の詳細

たとえば、ビューが customer_name を返し、それが顧客テーブルの「顧客名」フィールドに由来する場合、顧客テーブルの対応するフィールドにマッピングできます。これにより、NocoBase は元のフィールドのタイトル、タイプ、インターフェース設定を引き継げます。
ビューフィールドが集計または計算結果に由来する場合、たとえば count(*) as total、sum(amount) as amount_total などは、通常、Field type と適切な Field interface を手動で選択する必要があります。
Field source は、NocoBase がデータベースビューから推測した情報で、あるビューフィールドがどの既存フィールドに対応する可能性があるかを示します。フィールドに Field source が設定されている場合、NocoBase はソースフィールドの Field type と Field interface を優先的に再利用します。
ソースフィールドを推測できない場合、または推測結果が業務上の意味と一致しない場合は、Field source を削除し、Field type と Field interface、Field display name を手動で選択してください。
レコードの一意識別子
データベースビューには Record unique key を設定する必要があります。設定しない場合、ページ上でブロックを作成できず、レコードを正しく表示または編集できません。1つのフィールド、または複数のフィールドの組み合わせを一意識別子として選択できます 。Record unique key に適したフィールドは、通常、次の条件を満たします。
- フィールド値が一意である
- フィールド値が安定しており、並べ替え、ページネーション、集計基準の変更によって変化しない
- フィールドが空でない
- view で常に返される
view が単一テーブルのクエリに由来する場合は、元テーブルの主キーを優先的に返すことをおすすめします。view が複数テーブルの join や集計に由来する場合は、データベースビュー内に安定した業務 ID を保持するか、データベース側で安定した一意フィールドを生成してください。
追加・更新・削除操作を許可する
データベース view が書き込みに対応している場合は、「Allow add new, update and delete actions」を有効にできます。NocoBase はページ上で、このビューに対する追加、更新、削除操作を許可します。
データベースビューはクエリ結果として使用するのに適しており、デフォルトでは読み取り専用のデータテーブルとして扱われます。データベース view が対応する書き込み操作をサポートし、かつデータベース権限でも書き込みが許可されていることを確認できた場合にのみ、有効にすることをおすすめします。
ビュー結果をプレビューする
送信前に Preview を使用して、ビューのクエリ結果を確認してください。プレビューでは、次の点を重 点的に確認します。
- view を正常にクエリできるか
- フィールドが揃っているか
- フィールドタイプとインターフェースタイプが業務上の意味に合っているか
- Record unique key が存在し、データが一意であるか
- 対応していないフィールドタイプをデータベース側で調整する必要があるか

フィールドを設定する
データベースビューの作成後、データテーブル一覧でビュー右側の「Configure fields」をクリックすると、フィールド設定ページに移動できます。フィールド設定では、ビューに含まれるフィールド、画面上での表示方法、およびデータベース view のフィールドを NocoBase の Field type と Field interface にマッピングする方法を管理します。
データベースビューの通常のフィールドはデータベース view に由来します。NocoBase は view に実際の列を直接追加、変更、削除しません。フィールド設定ページでは、NocoBase 内の業務上の関連付けを補足するために、多対一リレーションフィールドのみ追加できます。データベースビューをリレーションフィールドの対象データテーブルとして使用することはできません。また、タイトルフィールドは通常設定する必要がありません。

リレーションフィールドを追加する
データベースビューに追加できるのは多対一リレーションフィールドのみです。多対一リレーションフィールドでは、view 内の既存フィールドを対象データテーブルの主キーまたは一意フィールドにマッピングし、ページ上で関連レコードを表示できます。ただし、データベース view に実際のフィールドや外部キー制約が作成されることはありません。
「Add field」をクリックすると、多対一リレーションフィールドを追加できます。

フィールドマッピング
データベースビューを接続すると、NocoBase は view フィールドとソースフィールドに基づいて Field type を推測し、デフォルトの Field interface を割り当てます。フィールドのソース、表示方法、または業務上の意味が想定と異なる場合は、フィールド設定でマッピングを調整できます。

- Field interface(インターフェースタイプ / UI タイプ):フロントエンドでのフィールドの表示方法と操作方法を決定します。たとえば「単行テキスト」「数値」「ドロップダウンメニュー」「日時」などで、ユーザー視点でのフィールド分類です
- Field type(データタイプ):NocoBase がフィールドのデータタイプをどのように認識するかを決定します。ソースフィールドのない view フィールドは通常、データベースフィールドのタイプから推測されます。たとえば
string、integer、decimal、boolean、datetimeなどです
Field source、Field type、または Field interface を変更しても、データベース view のフィールドタイプが変更されるわけではありません。主にページ上の表示方法、バリデーションルール、および NocoBase によるフィールドの認識方法に影響します。
データベースから同期する
データベース側で view のフィールド構造を変更した場合は、「Configure fields」に移動し、「Sync from database」をクリックしてフィールド構造を再読み込みできます。同期後、NocoBase はフィールドを更新します。view に追加された新しいフィールドを追加し、view から削除されたフィールドを削除し、フィールドタイプとフィールドソースを再確認します。

同期時、フィールド名の変更は通常、「古いフィールドの削除 + 新しいフィールドの追加」として処理されます。同期前に、古いフィールドがページ、権限、ワークフロー、外部 API で使用されていないか確認し、同期後に設定が無効になるのを避けてください。同期後は、Field type と Field interface も再確認する必要があります。
フィールドを編集する
フィールド右側の「Edit」をクリックすると、フィールド設定を編集できます。フィールドの編集は、表示名、説明、バリデーションルール、フィールド固有の設定など、NocoBase におけるフィールドの表示方法や使用方法を調整する場合に適しています。 フィールド設定の詳細

フィールド設定を編集しても、データベース view の実際の列名、フィールドタイプ、SQL 式、インデックスは変更されません。view の実際の構造を変更する必要がある場合は、まずデータベース側で view を変更し、その後「Sync from database」を使用して同 期してください。
フィールドを削除する
フィールド右側の「Delete」をクリックすると、個別のフィールドを削除できます。フィールドを削除すると、NocoBase に保存されているフィールドのみが削除され、データベース view の実際の列は削除されません。

フィールドを削除すると、ページブロック、フィルタ条件、並べ替え、権限、ワークフロー、API、既存の設定に影響する可能性があります。削除前に、そのフィールドがまだ使用されていないか確認してください。データベース view が引き続きこの列を返す場合、後で「Sync from database」を実行した際に、NocoBase がこのフィールドを再度認識する可能性があります。
ビューを編集する
データベースビューの SQL 定義はデータベース側で管理されます。データテーブル一覧でデータベースビュー右側の「Edit」をクリックすると、NocoBase におけるデータベースビューのメタデータと実行設定を調整できます。データベース内の view は変更されません。別のデータベース view に接続する必要がある場合は、新しいデータベースビューデータテーブルを作成す ることをおすすめします。

Record unique key または Allow add new, update and delete actions を変更した後は、ページブロック、権限、ワークフローが引き続き想定どおりに動作するか再確認してください。
ビューを削除する
データテーブル一覧でデータベースビュー右側の「Delete」をクリックすると、データベースビューデータテーブルを削除できます。データベースビューデータテーブルを削除しても、NocoBase 内の接続設定とフィールドのみが削除され、データベース内の view は削除されません。
メインデータベース内のデータベースビューは、複数選択して一括削除することもできます。削除前に、ページブロック、チャート、権限、ワークフロー、外部 API でこのデータベースビューデータテーブルが使用されていないか確認してください。


