Таблица-наследник

Источник данных: основнойCommunity Edition+

Введение

Таблица-наследник — это расширение обычной таблицы. Она подходит для случаев, когда нескольким таблицам данных требуется общий набор полей, а каждой дочерней таблице — собственные специальные поля.

Например, сначала можно создать родительскую таблицу «Активы» для хранения общих полей: инвентарного номера, названия актива, даты приобретения, ответственного и других. Затем на её основе создать дочерние таблицы «Компьютерное оборудование», «Транспортные средства», «Офисная мебель» и другие. Дочерняя таблица наследует структуру полей родительской таблицы и может дополнительно определять собственные поля.

Внимание

Таблицы-наследники можно создавать только при использовании PostgreSQL в качестве основной базы данных. Другие основные базы данных, внешние базы данных, источники данных REST API и внешние источники данных NocoBase не поддерживают таблицы-наследники.

Сценарии использования

Таблицы-наследники подходят для следующих бизнес-сценариев:

  • Родительская таблица активов с дочерними таблицами компьютерного оборудования, транспортных средств и офисной мебели
  • Родительская таблица персонала с дочерними таблицами сотрудников, внештатных работников и посетителей
  • Родительская таблица дел с дочерними таблицами задач, дефектов и требований
  • Родительская таблица договоров с дочерними таблицами договоров закупки, договоров продажи и договоров на обслуживание

Использовать таблицы-наследники целесообразно, если у этих объектов есть стабильный набор общих полей, а различия между дочерними таблицами в основном заключаются в небольшом количестве специальных полей.

Создание и настройка

В основной базе данных нажмите «Create collection», а затем при выборе обычной таблицы или варианта создания с поддержкой наследования выберите родительскую таблицу с помощью Inherits.

20240324085907

НастройкаОписание
Collection display nameНазвание таблицы данных, отображаемое в интерфейсе, например «Компьютерное оборудование», «Транспортные средства» или «Офисная мебель».
Collection nameИдентификатор таблицы данных, используемый для внутренних ссылок в API, полях связей, правах доступа, рабочих процессах и других компонентах.
InheritsВыбор родительской таблицы для наследования. Текущая таблица данных унаследует структуру её полей и сможет дополнительно определять собственные поля.
CategoriesКатегория таблицы данных. Категория влияет только на организацию таблиц данных в интерфейсе управления и не изменяет структуру таблицы данных.
DescriptionОписание таблицы данных. Здесь можно указать, какие данные хранит дочерняя таблица, от какой родительской таблицы она создана и кто её обслуживает.
Preset fieldsПредустановленные поля. Таблица-наследник обычно также сохраняет поля обычной таблицы: ID, время создания, создателя, время обновления, обновившего пользователя и другие.

Для таблицы-наследника можно использовать способы настройки блоков и полей обычной таблицы. Для блоков страниц она по-прежнему является таблицей данных, записи которой можно создавать, просматривать, изменять и удалять.

Внимание

Таблицы-наследники подходят для бизнес-объектов с очень похожей структурой. Если бизнес-процессы, права доступа и страницы разных объектов сильно отличаются, обычно понятнее создать отдельные обычные таблицы и связать их с помощью полей связей.

Встроенные поля

Таблица-наследник наследует существующие поля родительской таблицы и может дополнительно добавлять собственные поля.

Источник полейОписание
Поля родительской таблицыДочерняя таблица наследует общие поля родительской таблицы, например инвентарный номер, название актива и ответственного.
Поля дочерней таблицыДочерняя таблица может дополнительно определять собственные специальные поля, например «Модель процессора» для компьютерного оборудования или «Номерной знак» для транспортных средств.
Системные поляЕсли при создании сохранить Preset fields, таблица будет содержать поля ID, время создания, создателя, время обновления, обновившего пользователя и другие.
Внимание

Поля родительской таблицы влияют на все дочерние таблицы, которые от неё наследуются. Перед изменением полей родительской таблицы убедитесь, что страницы, права доступа, рабочие процессы и API дочерних таблиц не зависят от этих полей.

Поле первичного ключа

Таблице-наследнику, как и обычной таблице, необходимо поле первичного ключа. При создании таблицы рекомендуется сохранить предустановленное поле ID; тип первичного ключа по умолчанию — Snowflake ID (53-bit).

Если в подключённой или синхронизированной таблице-наследнике отсутствует первичный ключ, при редактировании таблицы данных необходимо задать «Record unique key». В противном случае блок страницы может неправильно отображать или редактировать записи.

Использование в настройках страниц

Таблицы-наследники можно использовать в большинстве блоков страниц, поддерживаемых обычными таблицами. Распространённый вариант — настроить каждую дочернюю таблицу как отдельный блок таблицы, формы, подробностей или канбан-доски.

БлокНазначение
Блок таблицыПросмотр, фильтрация, сортировка и массовая обработка записей дочерней таблицы.
Блок формыДобавление или редактирование отдельной записи дочерней таблицы.
Блок подробностейПросмотр подробностей отдельной записи дочерней таблицы.
Блок канбан-доскиГруппировка и отображение записей дочерней таблицы по статусу, этапу, ответственному и другим полям.

Редактирование настроек

В списке таблиц данных нажмите «Edit» справа от таблицы-наследника, чтобы изменить отображаемое название таблицы данных, категорию, описание, простой режим постраничной навигации, «Record unique key» и другие настройки.

Не рекомендуется часто изменять связи наследования после того, как на их основе уже настроено большое количество бизнес-компонентов. Блоки страниц, поля связей, права доступа и рабочие процессы могут зависеть от текущей структуры полей.

Удаление таблицы данных

В списке таблиц данных нажмите «Delete» справа от таблицы-наследника, чтобы удалить её.

При удалении таблицы-наследника удаляются метаданные Collection этой дочерней таблицы и фактическая таблица данных в основной базе данных. Перед удалением убедитесь, что эта дочерняя таблица больше не используется блоками страниц, полями связей, правами доступа, рабочими процессами или API.

Предупреждение

Удаление таблицы-наследника не означает автоматическое удаление родительской таблицы. Удаление зависимых объектов определяется параметрами подтверждения удаления. Перед выполнением операции убедитесь, что родительскую таблицу и другие дочерние таблицы по-прежнему не требуется сохранять.

Связанные ссылки