2 Punkte von GN⁺ 4 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • Wenn man ein SQL-Schema einfügt, visualisiert es Tabellen, Spalten, Schlüssel und Beziehungen sofort im Browser als ERD
  • Es parst CREATE TABLE- und ALTER TABLE-DDL aus PostgreSQL-, MySQL-, SQLite- und SQL-Server-Syntax und verarbeitet Primärschlüssel, Fremdschlüssel sowie Unique- und Not-Null-Constraints
  • Es unterstützt interaktive Bearbeitung wie das Ziehen von Tabellen, automatische Anordnung, das Hinzufügen von Notizen, Zoomen und Umbenennen per Doppelklick
  • Die Ergebnisse können als hochauflösendes PNG, Vektor-SVG, Projektdatei oder als Freigabelink exportiert werden, bei dem das Diagramm in der URL kodiert ist
  • Es sind weder Konto, Registrierung noch Installation erforderlich, und da das SQL-Schema weder auf den Server hochgeladen noch dort gespeichert wird, liegt der Fokus auf lokaler Ausführung

SQL einfügen, Schema ansehen

  • Gibt man links im Editor eine CREATE TABLE-Anweisung ein, wird das SQL-Schema als ER-Diagramm angezeigt
  • Das Beispielschema ist eine kleine E-Commerce-Struktur und besteht aus 6 Tabellen und 7 Beziehungen: users, addresses, products, orders, order_items und reviews
  • Tabellen lassen sich ziehen, per Scrollrad zoomen, per Doppelklick umbenennen und anschließend exportieren
  • Es gibt eine Funktion zum Laden des Beispielschemas, und auf dem Bildschirm wird ein Zoomfaktor von 122 % angezeigt
  • Die gesamte Verarbeitung läuft zu 100 % lokal im Browser, und das Schema verlässt den Browser nicht

SQL to ER Diagram — kostenloser Online-ERD-Generator

  • SQL to ER Diagram ist ein kostenloses Open-Source-Tool, das SQL-Schemata im Browser in interaktive ERDs umwandelt
  • Fügt man CREATE TABLE-Anweisungen ein, werden Tabellen, Spalten, Primärschlüssel, Fremdschlüssel und Beziehungen sofort visualisiert
  • Es funktioniert mit PostgreSQL, MySQL, SQLite und SQL Server
  • Es unterstützt das Ziehen von Tabellen, automatische Layout-Ausrichtung, das Hinzufügen von Notizen sowie den Export als PNG oder SVG
  • Es wird nichts hochgeladen, und das Schema bleibt auf dem Gerät des Nutzers

Häufig gestellte Fragen

  • Um aus SQL ein ER-Diagramm zu erstellen, fügt man im Editor SQL-CREATE TABLE-Anweisungen ein, und das Tool rendert sofort ein interaktives ERD
    • Danach kann man die Tabellen per Drag-and-drop anordnen und als PNG oder SVG exportieren
  • Unterstützte SQL-Dialekte sind PostgreSQL, MySQL, SQLite und SQL Server; geparst werden standardmäßige CREATE TABLE- und ALTER TABLE-DDL
    • Verarbeitet werden Primärschlüssel, Fremdschlüssel, Unique- und Not-Null-Constraints
  • SQL to ER Diagram ist vollständig kostenlos und Open Source, und es sind weder Konto noch Registrierung erforderlich
  • Alle Aufgaben werden lokal im Browser ausgeführt, und das SQL-Schema wird weder auf den Server hochgeladen noch dort gespeichert
  • Diagramme können als hochauflösendes PNG, Vektor-SVG, vollständige Projektdatei oder als Freigabelink exportiert werden, bei dem das Diagramm in der URL kodiert ist
  • Es ist keine Installation erforderlich, und es läuft in Webbrowsern auf Desktop und Mobilgeräten

1 Kommentare

 
GN⁺ 4 시간 전
Hacker-News-Kommentare
  • Das erinnert mich an ein Tool, das ich vor ein paar Monaten zusammen mit v0 gebaut habe: https://v0-yaerd.vercel.app
    Ich hatte kein Tool gefunden, das Laravel-Migrationsdateien interpretieren und daraus ERDs erzeugen kann, also habe ich selbst eines gebaut und später per Prompt auch grundlegende SQL-Unterstützung hinzugefügt.

  • Das Tool ist sehr cool, aber ich finde nicht, dass man allein aus SQL ein ER-Diagramm erstellen kann.
    Entitäten und Tabellen sind grundsätzlich verschieden, und auch wenn sie sich stark ähneln, liefert SQL allein nicht genug Informationen, um ein echtes ER-Diagramm zu erzeugen.
    Das heißt nicht, dass dieses Tool nutzlos ist oder dass solche Diagramme nicht hilfreich wären; das ist eher eine grundsätzliche Anmerkung, und andere sehen das vielleicht anders.

    • Ist es nicht das Grundprinzip unzähliger ORMs, dass Entitäten und Tabellen größtenteils einander entsprechen?
      Klar, DDL sagt nicht viel über den Lebenszyklus einer Entität aus, aber wenn der Maßstab ist, Beziehungen, Felder und Kardinalitäten als Graph darzustellen, scheint es dafür auszureichen.
    • Genauer gesagt ist ein aus SQL abgeleitetes ER-Diagramm nach Chens Definition ein Diagramm auf der niedrigsten Ebene, also ein physisches Diagramm; ein logisches/konzeptionelles Diagramm lässt sich daraus nicht rekonstruieren.
      Heutzutage scheint sich kaum noch jemand um diesen Unterschied zu kümmern.
    • Die Umwandlung von SQL nach ER ist dafür gedacht, eine unbekannte Datenbank zu verstehen.
      Die DB existiert bereits, aber es gibt vielleicht kein ERD und kaum Dokumentation.
      Deshalb ist es eher ein Erkundungswerkzeug, und idealerweise sollte man Ansichten erstellen und Notizen anheften können.
      Gerade wenn es extrem viele Tabellen gibt oder viele Tabellen ohne Fremdschlüssel vorhanden sind, muss man nicht das komplette ERD auf einmal sehen.
    • Es wäre gut, den Unterschied etwas genauer zu erklären.
      Praktisch kann man beides fast austauschbar verwenden, aber konzeptionell scheint es über Entitäten und Beziehungen noch eine reichere Bedeutungsebene zu geben.
      Zum Beispiel Beschreibungen von Beziehungen oder zusätzliche Anmerkungen zu Entitäten.
    • Es wäre hilfreich, das etwas ausführlicher zu erklären.
      Ich hatte immer verstanden, dass Entitäten und Tabellen in einer 1:1-Beziehung stehen, und ein Beispiel würde sehr helfen.
  • Die Mobile-Usability ist 1000 von 100 Punkten.
    Panning, Zoomen, Auswählen und Verschieben sind so flüssig, dass ich dachte, ich bilde mir das ein.

    • Die gesamte Codebasis ist ehrlich gesagt erfrischend: https://github.com/royalbhati/sqltoerdiagram/blob/main/src/m...
      Ich mag Entwickler, die komplexe Probleme auf einfache Lösungen herunterdestillieren, und dieser Entwickler ist wirklich außergewöhnlich.
      Mir fällt kein größeres Lob ein, das man einem Entwickler machen könnte.
    • Mein erster Gedanke war, dass man den Diagrammteil als separate Bibliothek herauslösen sollte.
      Es sieht so aus, als gäbe es viele Einsatzmöglichkeiten für diese Diagrammfunktion über ERDs hinaus.
    • Wirklich großartig.
      Selbst wenn man per Doppeltipp bearbeitet, wird die Zoomstufe nicht zurückgesetzt.
      Das gehört ganz klar zu den mobilfreundlichsten Websites, die ich bisher gesehen habe.
    • Schade ist nur, dass Safari Mobile beim Antippen von Textfeldern hineinzoomt, aber das ist ein Problem, das alle haben.
  • Nichts Großes, nur ein kleines Tool, aber ich dachte, es könnte auch für andere nützlich sein.
    Ich musste immer wieder Datenbankschemata visualisieren, und die meisten Tools hatten entweder eine Paywall, einen Zwang zur Registrierung oder das Problem, dass SQL an fremde Server geschickt werden musste.
    Kein Backend, kein Account, und die Daten verlassen mein Gerät nicht.
    Bei der Umsetzung gab es auch ein paar interessante Punkte: Statt DOM/SVG werden Tabellen in gecachte Bitmaps rasterisiert, und mit Viewport-Culling bleibt alles flüssig, selbst wenn Hunderte Tabellen auf dem Bildschirm sind.
    Der SQL-Parser verfolgt die Quellbereiche aller Tokens, sodass Bearbeitungen wie das Umbenennen von Tabellennamen nur die relevanten Identifikatoren und Referenzen exakt ändern, während Kommentare und Formatierung unverändert bleiben.
    Das vollständige Schema steckt in der URL, und das Teilen funktioniert, indem das Schema direkt in die URL serialisiert wird; dadurch braucht es weder Backend noch gespeicherten Zustand noch Accounts.
    Ich habe auch eine Rust/WASM-Version ausprobiert, aber die Kosten an der JS↔WASM-Grenze waren größer als die eingesparte Rechenarbeit, sodass der Parser etwa 37 % langsamer war; nur der O(n^2)-Pass zur Überlappungsauflösung war etwa 2,2-mal schneller.
    Am Ende habe ich es bei reinem JavaScript belassen, ohne Framework, und komprimiert mit gzip sind es etwa 32 KB.

    • Im Titel steht kostenlos; dann würde mich interessieren, welche Freie-Software-Lizenz verwendet wird.
      Wenn keine Lizenz angegeben ist, kann es Open Source sein, aber keine freie Software.
    • Wenn das komplette Schema in der URL steckt, könnte das wegen URL-Längenbeschränkungen problematisch werden.
      „Es wird empfohlen, dass alle Sender und Empfänger URI-Längen von mindestens 8000 Oktetten innerhalb von Protokollelementen unterstützen.“
      https://www.rfc-editor.org/rfc/rfc9110#section-4.1-5
    • Wirklich sehr gut gemacht.
      Responsiv, sauber und mit einer hervorragenden Onboarding-Erfahrung ohne Registrierungsbarrieren.
  • Die Unterscheidung „Entität vs. Tabelle“ gibt es tatsächlich, aber für die große Mehrheit der Entwickler, die ein bestehendes Schema schnell visualisieren wollen, reicht das vollkommen aus.
    Hier ist Perfektion der Feind des Nutzens.
    Die meisten wollen keine ORM-Abstraktion entwerfen, sondern einfach sehen, was womit verbunden ist.

  • Das erinnert mich an https://explain.dalibo.com/
    Das ist ein Tool zur Visualisierung von Query-Ausführungsplänen und eines der nützlichsten Werkzeuge, die ich je zur Optimierung von SQL-Abfragen verwendet habe.
    Für sensible Daten sollte man besser unten die vollständig offline nutzbare v2-Version herunterladen.

  • Eine Option für gerade Linien und 90-Grad-Knicke wäre auch schön.
    Ich mochte gebogene Linien noch nie besonders, aber es sieht gut aus und ist sauber gemacht.

    • Ich nehme es in die To-do-Liste auf.
  • Ich frage mich, ob es eine Möglichkeit gibt, diese SVGs per CLI zu erzeugen.
    Es gefällt mir wirklich sehr, und die ähnliche Postgres-Erweiterung für VSCode war auch gut, ist aber an VSCode gebunden.
    Es gibt dort ebenfalls keine exportierbare CLI-Option, die man ins Repository legen könnte.

  • Ich nutze https://github.com/ondras/wwwsqldesigner und finde, dass man es als Vergleich heranziehen kann.

    • Ist das der Ondras von V8CGI?
      Ich mochte dieses Projekt sehr, und es war eine der ersten serverseitigen JS-Implementierungen.
      Vielleicht war ich der Einzige, der ihm gefolgt ist, aber Ondřej, tolle Arbeit.
  • Ganz okay, aber auf GitHub fehlt eine LICENSE-Datei: https://github.com/royalbhati/sqltoerdiagram