Соло-разработчик сделал ER-диаграммы, не отправляющие SQL никуда — а инженер сказал, что это не ER
Вставьте свои CREATE TABLE, растащите таблицы, переименуйте колонку — и SQL переписывается сам, всё в браузере, ничего не загружается на сервер. Старший дата-инженер вежливо заметил: из одного SQL настоящую ER-диаграмму получить нельзя.
Устав от инструментов с пейволлами, обязательной регистрацией и серверами, заглатывающими твою схему, robhati сделал sqltoerdiagram.com: клиентский холст, где вставленный DDL превращается в интерактивную диаграмму — её можно таскать, авто-раскладывать и экспортировать в PNG или SVG.
Инженерный понт: таблицы растеризуются в кэшированные битмапы с отсечением вне области просмотра, а парсер SQL отслеживает позиции токенов, так что переименование остаётся точечным. Возражение: таблицы — не сущности, поэтому из одного SQL настоящей ER-диаграммы не выйдет.
Визуализатор схемы, где схема не покидает вкладку

sqltoerdiagram.com (340 голосов, 72 комментария) — ответ одного человека на знакомое раздражение. Как автор сформулировал в Show HN: «у большинства инструментов одни и те же проблемы: пейволлы, обязательная регистрация или отправка твоего SQL на чужой сервер. Так что в итоге я собрал свой».
Вы вставляете операторы CREATE TABLE и получаете интерактивную диаграмму «сущность-связь» прямо в браузере — таблицы, колонки, первичные и внешние ключи, связи. Таблицы можно таскать, скроллом масштабировать, двойным кликом переименовывать, авто-раскладывать, добавлять заметки и группирующие рамки, экспортировать в PNG или SVG либо поделиться ссылкой, в которой закодирована вся диаграмма. Парсер понимает стандартный DDL для PostgreSQL, MySQL, SQLite и SQL Server. Приватность — главный аргумент: «100% локально — ваша схема никогда не покидает браузер. Никаких аккаунтов, никаких загрузок».
Две детали реализации, которыми автор гордился
Автор отметил два инженерных решения, давших эту плавность. Таблицы рисуются на canvas, а не в DOM, и «растеризуются в кэшированные битмапы с отсечением вне области просмотра, что держит плавность даже при сотнях таблиц на экране». А парсер знает про позиции в исходнике:
«Парсер SQL отслеживает позиции каждого токена в исходнике. Это позволяет править точечно: переименовываешь таблицу — и меняется только нужный идентификатор и ссылки на него…» — robhati, автор
Именно это отслеживание позиций позволяет при переименовании колонки на холсте точно переписать исходный SQL, а не генерировать его заново. Читатель, тестировавший на мобильном, опешил: «100/10 за мобильное удобство. Панорама, зум, выбор и перемещение были настолько бесшовными, что я подумал, у меня глюки».
«Из SQL ER-диаграмму не получить»
Самое острое возражение было концептуальным — от того, кто моделирует данные по работе:
«На мой взгляд, из SQL нельзя получить ER-диаграмму, поскольку сущности принципиально отличаются от таблиц. Они, конечно, очень похожи, но одного SQL недостаточно, чтобы построить ER-диаграмму». — michaelmior, старший дата-инженер в OneChronos
Он признал, что придирается. Другой читатель дал ответ практикующего разработчика: «Идеальное здесь враг полезного. Большинство не строит ORM-абстракции — людям просто надо увидеть, что с чем связано». Правы оба, и потому замечание стоит сохранить: в заголовке «ER-диаграмма», а на выходе на деле диаграмма связей таблиц, и для 90% пользователей этот зазор не важен.
Поле, забитое такими, и запросы фич, выдающие реальное применение
Тред превратился в перекличку соседних инструментов — Azimutt, dbdiagram, wwwsqldesigner, MySQL Workbench («помните… какой он был неуклюжий»), встроенная поддержка ER в Mermaid и дополняющий инструмент на sqlglot для перевода между диалектами. Один прямолинейный читатель задал вопрос, который в 2026 году получает каждый Show HN: «вы использовали ИИ для разработки? Если да, какой процент… сгенерирован ИИ против написанного вручную?»
Запросы фич сказали больше похвалы. Staff-инженер из Doctolib и другие хотели экспорт через CLI, чтобы диаграммы жили в репозитории. Один читатель в лоб поднял проблему мультитенантности:
«в мультитенантном приложении 90% таблиц будут ссылаться на таблицу тенанта, но толку от этих связей мало… так что хорошо бы их прятать». — CodesInChaos
А читатель с 4k кармы заметил, что в репозитории нет файла LICENSE — мелкое упущение, которое тихо мешает кому-либо строить зависимость на этом инструменте.
Настоящий продукт здесь — модель доверия
Уберите диаграмму, и останется ставка на позиционирование: инструмент разработчика, вся ценность которого в том, что он ничего не делает на сервере. Раз нет загрузки, то нет и ревью на соответствие требованиям, нет вопроса «можно ли вставить сюда нашу боевую схему». Спор «настоящая ли это ER» — поправка, которая делает инструмент лучше, а не топит его. Отсутствие файла LICENSE — вот что реально ограничивает внедрение: реши это, и проект выходного дня станет тем, что команда сможет положить себе в репозиторий.
Получайте такие разборы каждый день
Главные истории Hacker News — на email, в Telegram или RSS.
Jane Street: будущее программирования — формальные методы, а команда, запретившая JSON, доказала это на Lean 4
Аргумент Jane Street: пока ИИ заливает кодовые базы кодом, который не вычитает ни один человек, математическое доказательство становится новой единицей доверия. В треде инженер рассказал, как запретил Python и JSON, переписал Nix в компилятор и выпускает доказательства на Lean 4 рядом с фаззерами, а ветеран, занимавшийся доказательством корректности десятилетия назад, предупредил: ловушка — слишком полюбить сам формализм.