Конструктор схемы¶
Примечание
Конструктор схемы работает только с метаданными Glarus BI (аналог действий в разделе администрирования полей — PUT /api/field с указанием semantic_type). Реальная схема базы данных клиента (DDL) при этом не изменяется — ни при создании, ни при удалении связи.
Конструктор схемы (страница /data-architect/erd, в интерфейсе — раздел «Конструктор схемы») отображает таблицы выбранной базы данных и связи между ними в виде графа. Помимо просмотра существующих связей (в том числе основанных на реальных внешних ключах — FK — базы данных), Конструктор схемы позволяет создавать и удалять связи на уровне метаданных Glarus BI прямо на холсте, перетаскиванием.
Поиск и фокусировка таблицы¶
Выберите базу данных, введите имя существующей таблицы в поиск и выберите результат. Можно выбирать таблицу сразу после появления результатов — искусственная пауза не нужна. После завершения отрисовки выбранная таблица становится видимой и центрируется на полотне.
Выбор другой таблицы или повторный выбор той же таблицы запускает новый переход. Если вы быстро меняете выбор, камера фокусирует последнюю выбранную таблицу, а не предыдущую цель.
После завершения перехода можно вручную изменить масштаб и переместить полотно. Обновление отображения не сбрасывает ручной масштаб и положение камеры к прежней цели.
Границы поиска таблиц¶
При ручной очистке или смене базы данных прежнее выделение столбца снимается. Последующий обычный поиск сохраняет ваш выбор базы: старая ссылка не переключает её обратно и не восстанавливает прежнее выделение.
Поиск без совпадений сохраняет существующее пустое состояние без нового сообщения и не создаёт выдуманных таблиц или ошибочного перехода. Очистите строку поиска, чтобы снова увидеть настоящую схему выбранной базы. Поиск не изменяет DDL базы данных или связи (FK).
Переход из Lineage¶
При переходе по узлу столбца в Lineage Конструктор схемы открывается в новой вкладке с базой данных и таблицей-владельцем. Таблица центрируется, столбец выделяется; выделение сохраняется при ожидании и масштабировании до смены выбора или ухода со страницы. Если таблица-владелец не определена, переход не выполняется. Это просмотр, а не редактирование: переход не изменяет DDL, данные или права пользователя. Подробности и ограничения — в разделе «Lineage — переход к столбцу».
Прямая ссылка к полю¶
Чтобы открыть Конструктор схемы сразу на нужном столбце, используйте адрес /data-architect/erd?field=<id>. Вместо <id> подставьте ID существующего поля в метаданных Glarus BI, а не имя или порядковый номер столбца физической таблицы. Дополнительные параметры таблицы и базы (table/db) не нужны.
По доступным вам метаданным Glarus BI автоматически определяет разрешённую таблицу-владельца и её базу данных. При успешном открытии таблица центрируется однократно, а точный столбец выделяется. Выделение сохраняется при ожидании и масштабировании до смены выбора или ухода со страницы. Если после перехода вы вручную выбрали другую базу данных, старая ссылка не переключает вас обратно.
При обработке ссылки могут появиться следующие сообщения:
- «Загрузка поля…» — метаданные поля ещё загружаются.
- «В ссылке указан некорректный ID поля.» — значение параметра
fieldне является корректным ID. - «Поле не найдено или недоступно.» — поле отсутствует или недоступно с вашими правами.
При ошибке переход не выполняется: система не подставляет предположительную базу или таблицу и не оставляет старое выделение. Доступ к объектам по-прежнему ограничен вашими правами; ссылка не позволяет обойти ограничения доступа. Открытие ссылки не изменяет DDL, данные или права пользователя.
Ранее сохранённые поддерживаемые ссылки с параметрами table_id/column_id остаются совместимы. Для новой прямой ссылки достаточно одного ID поля.
Создание связи перетаскиванием¶
Чтобы создать связь внешнего ключа (FK) между двумя колонками разных таблиц:
- Наведите курсор на колонку-источник (например,
orders.user_id) — на ней появится точка захвата (handle). - Перетащите (drag&drop) от точки захвата этой колонки к колонке другой таблицы (например,
people.id), на которую должна ссылаться связь. - При отпускании курсора появится модальное окно подтверждения с названиями обеих таблиц и колонок — например, «Создать связь
orders.user_id→people.id?». - После подтверждения связь сохраняется как метаданные Glarus BI, и на холсте сразу появляется новое ребро — без перезагрузки страницы.
Ограничения:
- нельзя связать колонку саму с собой или с другой колонкой внутри одной и той же таблицы — Конструктор схемы покажет понятное сообщение об ошибке и не создаст связь;
- если у колонки-источника уже есть связь, будет предложено заменить её новой;
- если типы данных связываемых колонок несовместимы (например, число и текст), появится предупреждение, но создание связи не блокируется.
Удаление связи¶
Чтобы удалить связь, созданную через Конструктор схемы, кликните по ребру (линии связи) на холсте и подтвердите удаление во всплывающем окне. После подтверждения связь исчезает с холста и из метаданных Glarus BI сразу же, без перезагрузки страницы.
Предупреждение
Так можно удалить только связи, созданные пользователем на уровне метаданных Glarus BI. Связи, существующие как настоящие внешние ключи (DDL) в схеме базы данных клиента, через Конструктор схемы удалить нельзя — их изменение требует прямого доступа к базе данных.
Пунктирные и сплошные связи¶
На холсте Конструктора схемы связи двух типов визуально различаются:
- пунктирная линия — связь, созданная пользователем через drag&drop и хранящаяся на уровне метаданных Glarus BI;
- сплошная линия — связь, существующая как настоящий внешний ключ (DDL) в схеме базы данных.
Наведите курсор на связь, чтобы увидеть подсказку (tooltip) с типом связи и участвующими колонками.
Переименование раздела¶
Раздел, ранее называвшийся «Schema Viewer» (просмотрщик схемы) или «ERD», переименован в «Конструктор схемы» — инструмент перестал быть только просмотрщиком и теперь позволяет создавать и удалять связи. Адрес страницы (/data-architect/erd) не изменился, чтобы не ломать уже сохранённые пользователями закладки и ссылки; краткое название «ERD» сохранено как подсказка (tooltip) в интерфейсе.