ER Architect / Как пользоваться

для дата-офиса

Как пользоваться редактором

Написано для всех, кто открывает диаграмму: и для архитектора, который её проектирует, и для аналитика, которому нужно её прочитать и сказать, где она врёт.

PKfirst_modelПервая модель

Три входа. Выбирайте тот, что подходит к тому, что у вас уже есть.

  1. Начать с базы, которая уже работает

    Выберите сохранённое подключение и схему — редактор прочитает таблицы, колонки, первичные и внешние ключи и индексы прямо в диаграмму. Обратно ничего не пишется. Если в списке пусто, подключение должен добавить администратор: пароли хранятся на сервере и вам не показываются.

  2. Начать с файла

    Импортируйте файл .sql с командами CREATE TABLE или файл DBML. Пригодится, когда схема существует миграцией в репозитории, но ещё не существует тем, на что можно посмотреть.

  3. Начать с нуля

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

FKcanvasТаблицы, колонки и связи

Двойной щелчок по пустому холсту создаёт таблицу. Внутри таблицы строка + добавляет колонку. Всё правится на месте — щёлкните по имени, чтобы изменить его.

Связи создаются перетаскиванием. Потяните от порта рядом с колонкой к таблице, на которую хотите сослаться, — ER Architect сам добавит колонку внешнего ключа и назовёт её по той, на которую она указывает. Нотация — «воронья лапка», поэтому сторона «многие» видна сразу.

Области группируют таблицы, которые относятся к одному — предметная область, витрина, ограниченный контекст. Перетащите таблицу в область, и она унаследует её цвет. В примере с книжным магазином области — «Каталог» и «Продажи».

Любая правка отменяется через Ctrl+Z — поэтому редактор почти ничего не переспрашивает. Подтверждение остаётся только там, где отменить уже нельзя.

The canvas with seven tables in two coloured areas, each column showing its code name, business name and type
В строке колонки видно кодовое имя, бизнес-имя и тип SQL. Ключи и ограничения отмечены справа.

FKnamingДва имени у всего

Это тот механизм, благодаря которому одна модель обслуживает две аудитории. Разобраться стоит сразу.

У каждой таблицы и колонки есть кодовое имя — то, как она называется в базе: order_items, unit_price — и бизнес-имя, то, как её называют люди: «Позиции заказа», «Цена за единицу».

Что показывать — выбираете вы: кодовые имена, бизнес-имена или оба. На концептуальном уровне всегда показываются бизнес-имена, и именно это делает диаграмму читаемой для того, кто ни разу не открывал редактор запросов.

Бизнес-имена путешествуют. Они уходят в сгенерированный DDL как COMMENT ON COLUMN, в выгружаемую документацию и в контекст, который получает ИИ-ассистент.

Пишите имена, а не предложения. Бизнес-имя — это подпись на диаграмме: «В наличии» работает, «Есть ли книга сейчас на складе» — нет. Второе описание, и на холсте оно читается как шум.

NlevelsDetail levels

Одна модель, два способа её прочитать. Ничего не дублируется, и второго документа для синхронизации нет.

УровеньЧто видноДля кого
КонцептуальныйСущности и связи между ними под бизнес-именами. Ни типов, ни ключей, ни технического шума.Аналитики, продакты и любой разговор про бизнес, а не про базу.
ФизическийВсё: кодовые имена, типы, ключи, индексы, ограничения.Те, кто будет это строить и запрашивать.
Редактировать можно только на физическом уровне. Это намеренно: правка, сделанная при скрытой половине структуры, — это правка вслепую.
The View menu with the conceptual and physical detail levels and the name display options
Меню «Вид» управляет и тем, что показано на каждом уровне — типы, ключи, индексы, описания, — если готовые наборы не совпадают с тем, как ваша команда читает диаграмму.

PKversionsСохранение и версии

Сохранение — явное. Пока вы не нажали «Сохранить», правки живут только в вашей сессии: отменяйте сколько нужно, никто их не видит. Поэтому в шапке и показано, есть ли несохранённое.

Каждое сохранение — версия, с сообщением, если вы его напишете. Хранятся последние пятьдесят: любые две можно сравнить, а старую — восстановить в сессию и посмотреть, прежде чем решать, оставлять ли её.

Если двое сохраняют из одной точки, второе сохранение отклоняется, а не затирает первое молча. Вы перезагружаете и применяете заново либо перезаписываете осознанно. Автоматического слияния схем нет: неверно слитая схема хуже конфликта, который надо разрешить руками.

FKdiffСравнить модель с базой

Проверка, которая отвечает, правда ли диаграмма ещё верна.

Выберите подключение и схему — ER Architect сравнит вашу модель с тем, что там на самом деле. Вы получите список расхождений: какие таблицы создать, какие колонки добавить, где разошлись типы, — и SQL, который закрыл бы разрыв.

Прочитайте, скопируйте или скачайте. ER Architect его не выполняет. Применять изменения к базе вы будете своими инструментами и по своему решению.

The diff dialog listing seven operations against a live PostgreSQL connection with the generated SQL below
Каждое расхождение отдельной строкой — снимите галочки с тех, что не нужны в сгенерированном SQL.

NexportВыгрузить модель

ФорматКогда нужен
DDLПередать схему тому, кто будет её создавать. Диалект выбирается в момент выгрузки; выгрузить можно весь проект, одну таблицу или одну область.
DBMLПеренести модель в другой инструмент или держать в репозитории текстом, который аккуратно сравнивается.
PNG, SVGВставить диаграмму в документ или слайд.
HTML, MarkdownДокументация по каждой таблице и колонке, с бизнес-именами и описаниями — для вики или как результат работы.

При выгрузке части модели внешние ключи, ведущие за пределы выбранного, не включаются. Они перечисляются в результате, а не пропадают молча.

PKteamВаша команда

Три роли, и любому на инстансе можно выдать одну из них.

РольМожет
ViewerОткрыть модель, читать любой уровень, выгружать. Менять не может ничего.
EditorВсё, что viewer, плюс править модель и сохранять версии.
OwnerВсё, что editor, плюс управлять участниками и настройками проекта. Не больше двух владельцев на проект, чтобы ответственность оставалась персональной.

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

The Team dialog with four people on one project holding owner, editor and viewer roles
Модель может быть у каждого, кому она нужна. Ради этого инструмент и сделан.

NassistantИИ-ассистент

Опционален, выключен, пока его не включат, и работает на вашем ключе.

«Спросить» отвечает на вопросы о схеме и ничего не меняет. «Изменить» применяет правки, описанные обычными словами, одним отменяемым шагом, предварительно сохранив версию, — вернуться можно всегда.

Модель возвращает ограниченный список операций редактирования, а не переписанную схему, — поэтому не может тихо перестроить то, о чём её не просили.

Передаются только метаданные схемы: имена таблиц и колонок, типы, ключи и комментарии. Данные строк не читаются и не передаются никогда.

Можно пользоваться корпоративным ключом, который выдал администратор, или своим личным. Если есть оба — выбираете, какой тратить на каждый запрос.

NfaqВопросы

Нужно ли знать SQL, чтобы этим пользоваться?

Нет. На концептуальном уровне вы читаете бизнес-имена и связи, без типов и ключей. Знание SQL нужно, чтобы править физическую структуру; чтобы читать модель — нет.

Могут ли двое править одну диаграмму одновременно?

Открыть её могут несколько человек и видеть, кто ещё здесь. У каждого браузера свой несохранённый черновик, на диск пишет только «Сохранить». Если двое сохраняют из одной ревизии, второе сохранение отклоняется с конфликтом, а не затирает первое.

Изменит ли он мою базу?

Нет. Обратная разработка только читает. Diff формирует SQL для чтения, копирования или выгрузки; отсюда на вашей базе не выполняется ничего.

Почему я вижу подключения, которые не могу править?

Подключения создаёт администратор, и они общие на инстансе. Вы можете выбрать одно и прочитать структуру базы за ним, но пароль хранится на сервере и вам не показывается.

Я случайно что-то удалил.

Ctrl+Z, пока вы ещё работаете. Если уже сохранили — откройте «Версии» и восстановите предыдущую: восстановление поднимает её в сессию, так что можно посмотреть, прежде чем оставлять.