ErdDocs

Построить ER-диаграмму онлайн по коду SQL

ErdDocs не заставляет рисовать ER-диаграмму, он её строит. Вставьте SQL-дамп, схему Prisma, миграции или ORM-модели. Через несколько секунд появятся сущности, их атрибуты и связи в нотации Мартина (IE), которую ещё называют «вороньей лапкой». Это бесплатно, без аккаунта и без установки. Схема никуда не загружается.

Ваша схема

Каталог фильмов, построенный по SQL слева. Вставьте поверх свою схему.

ER-диаграмма, построенная по схеме каталога фильмов: таблицы studios, people, films, film_credits, theaters и screenings, на каждой связи знаки нотации Мартина (crow’s foot).ER-диаграмма, построенная по схеме каталога фильмов: таблицы studios, people, films, film_credits, theaters и screenings, на каждой связи знаки нотации Мартина (crow’s foot).
Та же схема каталога фильмов, ровно такая, какой её рисует экспорт в SVG.

Это программа для рисования?

Нет. ErdDocs строит диаграмму по вставленной схеме, поэтому здесь нет ни палитры фигур, ни инструмента для линий, ни пустого холста, с которого начинают. ER-диаграмма здесь получается из чтения схемы, её не собирают вручную. Вы вставляете текст, который уже описывает вашу базу. По нему строятся прямоугольники, колонки, ключи и кардинальность. Таблицы можно перетаскивать, чтобы расставить их удобнее, и расположение сохраняется в ссылке для обмена. Но всё, что на ней показано, взято из вашей схемы, и ничего не приходится перепечатывать вручную.

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

Рисовать или строить?

Всё решает одно: есть ли уже схема.

  • Схемы ещё нет: рисуйте. ErdDocs читает готовую схему, поэтому этот случай он не покрывает. Пока базы нет, модель данных обсуждают и рисуют: какие будут сущности и как они связаны. Адрес принадлежит заказу или заказ только ссылается на него? Это правда связь «многие ко многим»? Для такого обсуждения подходит доска или графический редактор. Когда модель превратится в миграцию или CREATE TABLE, ErdDocs прочитает схему уже оттуда.
  • Схема уже есть: стройте. Когда таблицы существуют, они уже точно описаны в инструкциях CREATE TABLE, в схеме Prisma, в файлах миграций, в классах ORM-моделей. Перерисовать это вручную значит заново написать то, что уже описано. Это ваше время, и в результате получится вторая, менее надёжная копия описания, которое у вас уже есть.

Среди инструментов для ER-диаграмм ErdDocs сделан для базы данных, которая уже существует. Остальные в этой категории рассчитаны на то, чтобы набросать модель с нуля. У большинства тех, кто ищет инструмент для ERD, схема уже есть. Они всё равно берут программу для рисования, потому что именно её предлагает поиск.

Что есть в ErdDocs и нет в других инструментах для ER-диаграмм

Все инструменты ниже рисуют ER-диаграммы. В таблице сравнивается то, что умеет ErdDocs.

ВозможностьErdDocsdbdiagramEraserdiagrams.netLucidchartSmartDrawMiroFigma FigJam
Строит диаграмму по SQL сам: таблицы и все связи✓ Да✓ ДаЧастично: SQL как запрос к ИИЧастично: таблицы есть, связи вручнуюЧастично: таблицы на холст вручнуюЧастично: из CSV, а не из SQLЧастично: через ИИ или код MermaidЧастично: только из кода Mermaid
Читает Prisma и ORM-модели✓ Да× НетЧастично: код как запрос к ИИ× Нет× Нет× Нет× Нет× Нет
Бесплатно находит связи без внешних ключей✓ ДаЧастично: ИИ на платном тарифеНе указано× Нет× Нет× НетЧастично: ИИ подсказывает связиНе указано
Схема не уходит на сервер производителя✓ ДаЧастично: только в генераторе ссылок× Нет✓ Да× Нет× Нет× Нет× Нет
Выгружает картинку без аккаунта✓ ДаНе указано× Нет✓ Да× Нет× НетЧастично: только простая доска× Нет
Выгружает Mermaid, DBML и PlantUML✓ ДаЧастично: только DBML× Нет× НетЧастично: Mermaid только через MCP× НетЧастично: только Mermaid× Нет
Словарь данных для печати✓ ДаЧастично: веб-документ, без PDFНе указано× Нет× Нет× НетНе указано× Нет
Можно без подписки✓ Да× Нет× Нет✓ ДаЧастично: на бесплатном тарифе нет импорта ERD× Нет× Нет× Нет

Таблица составлена по страницам самих производителей на ноябрь 2026 года. «Не указано» значит, что производитель об этом не пишет. Названия продуктов принадлежат их владельцам.

dbdiagram ближе всех: он тоже строит диаграмму по SQL. Но Prisma и ORM-модели он не читает, Mermaid и PlantUML не выгружает, а связи без внешних ключей ищет только ИИ на платном тарифе. Платные тарифы там только по подписке, за ErdDocs платят один раз.

Eraser не разбирает SQL, а передаёт его ИИ-модели как запрос, так что схема уходит с компьютера. Выгрузка требует аккаунта, Mermaid, DBML и PlantUML среди форматов нет.

diagrams.net по вставленному SQL создаёт таблицы, но связи между ними проводят вручную. ORM-модели он не читает и словаря данных не делает.

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

SmartDraw строит ERD из CSV, который выгружают запросом из работающей базы. SQL-дамп и ORM-модели он не читает и работает только онлайн.

Miro и Figma FigJam строят ERD через ИИ или из кода Mermaid, а не из SQL. Схема хранится у них в облаке, выгрузка идёт из аккаунта.

Почему нарисованная ER-диаграмма устаревает, а построенная не может

Нарисованная вручную диаграмма похожа на снимок, никак не связанный с базой. Следующая миграция добавляет колонку, переименовывает таблицу или удаляет внешний ключ. А диаграмма по-прежнему показывает старую структуру. Чтобы её поправить, кто-то должен вспомнить о ней, найти файл, иметь лицензию на редактор и выкроить время. Обычно это случается в ту неделю, когда диаграмму нарисовали, и больше никогда. Во многих репозиториях лежит диаграмма, которая противоречит схеме рядом с ней.

У построенной диаграммы нет отдельной копии, которую надо обновлять. Она каждый раз берётся из текста схемы. Построить её заново по свежему дампу можно за секунды, и она всегда совпадает со схемой. Её можно пересобирать к каждому релизу. Из той же вставки выгружается Mermaid для README, SVG для сайта с документацией или полный словарь данных для сдачи проекта.

Что можно вставить

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

  • SQL: скрипты PostgreSQL, MySQL, SQL Server и SQLite в том виде, в каком их выдают сами серверы и их утилиты: pg_dump, mysqldump или «Создать скрипты» в SSMS. Читаются обратные кавычки, AUTO_INCREMENT, пакеты GO из SSMS и ключи, объявленные позже через ALTER TABLE. Что содержит дамп, показано на странице про MySQL.
  • Языки описания схем: Prisma, DBML, Mermaid и PlantUML. Это уже диаграммы в виде текста, их остаётся только нарисовать.
  • ORM-модели: классы Django, SQLAlchemy, Sequelize и TypeORM, а также миграции Laravel. Для таких баз диаграммы обычно не было вовсе, потому что они описаны в коде приложения.

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

Результат можно выгрузить в Mermaid, DBML, PlantUML или SQL, например для README или документации проекта.

Что показывает построенная диаграмма

Каждая таблица нарисована прямоугольником, внутри него колонки с настоящими типами и отметки ключей. На обоих концах каждой связи стоят знаки нотации Мартина. Поэтому кардинальность на диаграмме указана прямо, о ней не нужно догадываться. В каталоге фильмов выше film_credits – промежуточная таблица со своими колонками. Именно так выглядит связь «многие ко многим», когда доходит до базы данных.

Во многих проектах на Rails, Django и Laravel внешние ключи в базе не объявлены. Такие связи ErdDocs восстанавливает по именам колонок: user_id → users, film_id → films. Связь рисуется пунктиром, чтобы её не спутать с объявленной в базе. Важнее всего это на унаследованных рабочих базах, и на странице об инструменте для диаграмм баз данных разобрано почему.

Частые вопросы

Здесь нужно перетаскивать прямоугольники, как в редакторе ERD?

Нет. ErdDocs строит диаграмму по вставленной схеме, поэтому палитры фигур и инструмента для линий здесь нет, и так задумано. Таблицы можно перетаскивать, чтобы расставить их удобнее, и расположение сохраняется в ссылке для обмена. Но вручную ничего не рисуется: каждый прямоугольник и каждая линия берутся из SQL.

Может, лучше нарисовать ERD вручную, а не строить?

ErdDocs строит ERD, когда таблицы уже существуют. В такой ситуации оказывается большинство, ведь схема обычно появляется раньше, чем кто-то просит её картинку. Не покрывает он один случай: базу данных, которую ещё не создали. Пока никто не написал миграцию, модель данных обсуждают, набрасывая сущности на холсте, и для этого подходят обычные программы для рисования. Когда набросок станет миграцией или CREATE TABLE, вставьте его сюда, и диаграмма построится по самой схеме.

Что сюда можно вставить?

Подходят десять форматов: SQL из PostgreSQL, MySQL, SQL Server и SQLite, схемы Prisma, DBML, Mermaid, PlantUML, модели Django, SQLAlchemy и Sequelize, сущности TypeORM и миграции Laravel. Формат определяется автоматически. Вставьте файл как есть, без чистки и без предварительного экспорта.

Нужны аккаунт, установка или подключение к базе?

Ничего из этого. Разбор выполняет JavaScript в вашем браузере, поэтому подключаться не к чему и загружать схему некуда. Имена таблиц и колонок не покидают ваш компьютер. Откройте страницу, вставьте схему, и диаграмма готова.

Что будет, когда схема изменится?

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

Это бесплатно?

Схемы до 25 таблиц рисуются целиком, аккаунт не нужен. Экспорт в PNG, SVG, Mermaid, DBML, PlantUML и SQL бесплатен. Большие схемы тоже разбираются полностью, но таблицы сверх лимита остаются закрытыми. Разовый платёж $9 снимает лимит и открывает словарь данных.

Подойдёт для курсовой или лабораторной по базам данных?

Да. Напишите таблицы на SQL и вставьте их сюда. Вы получите ER-диаграмму с кардинальностью и заодно словарь данных для печати. Если преподаватель требует модель до таблиц, её придётся сначала спроектировать. ErdDocs рисует то, что уже написано.

Ещё по теме