Соло-разработчик сделал ER-диаграммы, не отправляющие SQL никуда — а инженер сказал, что это не ER

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

Вкратце

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

Инженерный понт: таблицы растеризуются в кэшированные битмапы с отсечением вне области просмотра, а парсер SQL отслеживает позиции токенов, так что переименование остаётся точечным. Возражение: таблицы — не сущности, поэтому из одного SQL настоящей ER-диаграммы не выйдет.

Визуализатор схемы, где схема не покидает вкладку

Интерфейс sqltoerdiagram
Интерфейс sqltoerdiagram

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.

Следующая новость · 19 из 27 Читать дальше
🚀Tech

Jane Street: будущее программирования — формальные методы, а команда, запретившая JSON, доказала это на Lean 4

Аргумент Jane Street: пока ИИ заливает кодовые базы кодом, который не вычитает ни один человек, математическое доказательство становится новой единицей доверия. В треде инженер рассказал, как запретил Python и JSON, переписал Nix в компилятор и выпускает доказательства на Lean 4 рядом с фаззерами, а ветеран, занимавшийся доказательством корректности десятилетия назад, предупредил: ловушка — слишком полюбить сам формализм.

★ 196 · 💬 73 · blog.janestreet.com · 5 мин