2 points par GN⁺ 4 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Collez un schéma SQL pour visualiser instantanément dans le navigateur les tables, colonnes, clés et relations sous forme d’ERD
  • Parse les DDL CREATE TABLE et ALTER TABLE des syntaxes PostgreSQL, MySQL, SQLite et SQL Server, et gère les clés primaires et étrangères ainsi que les contraintes unique et not-null
  • Prend en charge l’édition interactive avec glisser-déposer des tables, disposition automatique, ajout de notes, zoom/dézoom et renommage par double-clic
  • Le résultat peut être exporté en PNG haute résolution, SVG vectoriel, fichier de projet ou lien de partage encodant le diagramme dans l’URL
  • Aucun compte, inscription ni installation n’est nécessaire, et le schéma SQL n’est ni téléversé ni stocké sur un serveur, avec un accent sur l’exécution locale

Coller du SQL, voir le schéma

  • Si vous insérez des instructions CREATE TABLE dans l’éditeur de gauche, le schéma SQL s’affiche sous forme de diagramme ER
  • Le schéma d’exemple correspond à une petite structure e-commerce, composée de 6 tables et 7 relations : users, addresses, products, orders, order_items et reviews
  • Vous pouvez déplacer les tables par glisser-déposer, zoomer/dézoomer avec la molette, renommer par double-clic puis exporter une fois terminé
  • Une fonction permet de charger le schéma d’exemple, et l’écran affiche un niveau de zoom de 122 %
  • Tout le traitement s’exécute 100 % en local dans le navigateur, et le schéma ne quitte jamais celui-ci

SQL to ER Diagram — générateur ERD gratuit en ligne

  • SQL to ER Diagram est un outil open source gratuit qui transforme un schéma SQL en ERD interactif directement dans le navigateur
  • Collez des instructions CREATE TABLE pour visualiser immédiatement les tables, colonnes, clés primaires, clés étrangères et relations
  • Fonctionne avec PostgreSQL, MySQL, SQLite et SQL Server
  • Prend en charge le glisser-déposer des tables, l’alignement automatique de la mise en page, l’ajout de notes et l’export en PNG ou SVG
  • Rien n’est téléversé, et le schéma reste sur l’appareil de l’utilisateur

Questions fréquentes

  • Pour créer un diagramme ER à partir de SQL, il suffit de coller des instructions SQL CREATE TABLE dans l’éditeur, et l’outil rend immédiatement un ERD interactif
    • Vous pouvez ensuite disposer les tables par glisser-déposer puis exporter en PNG ou SVG
  • Les dialectes SQL pris en charge sont PostgreSQL, MySQL, SQLite et SQL Server, avec parsing des DDL standard CREATE TABLE et ALTER TABLE
    • Les clés primaires, clés étrangères, contraintes unique et not-null sont gérées
  • SQL to ER Diagram est entièrement gratuit et open source, sans besoin de compte ni d’inscription
  • Tout s’exécute localement dans le navigateur, et le schéma SQL n’est ni téléversé ni stocké sur un serveur
  • Les diagrammes peuvent être exportés en PNG haute résolution, SVG vectoriel, fichier de projet complet ou lien de partage encodant le diagramme dans l’URL
  • Aucune installation n’est nécessaire, et l’outil fonctionne dans les navigateurs web sur desktop comme sur mobile

1 commentaires

 
GN⁺ 4 시간 전
Commentaires sur Hacker News
  • Ça me rappelle un outil réalisé ensemble avec v0 il y a quelques mois : https://v0-yaerd.vercel.app
    Je l’ai créé parce que je ne trouvais pas d’outil capable d’interpréter des fichiers de migration Laravel pour générer un ERD, puis j’ai ajouté une prise en charge basique de SQL via des prompts

  • L’outil est très sympa, mais je pense qu’on ne peut pas produire un diagramme ER à partir du seul SQL
    Les entités et les tables sont fondamentalement différentes, et même si elles se ressemblent beaucoup, le SQL seul ne contient pas assez d’informations pour construire un diagramme ER
    Ça ne veut pas dire que cet outil est inutile, ni que ce type de diagramme n’aide pas ; c’est plutôt une remarque de principe, avec laquelle d’autres ne seront peut-être pas d’accord

    • Le fait que les entités et les tables se correspondent généralement n’est-il pas le principe de base d’innombrables ORM ?
      Bien sûr, le DDL ne dit pas grand-chose du cycle de vie d’une entité, mais si le critère est de représenter en graphe les relations, les champs et les cardinalités, ça me semble suffisant
    • Plus précisément, selon la définition de Chen, un diagramme ER extrait du SQL est un diagramme physique de niveau le plus bas, et on ne peut pas en reconstituer les diagrammes logiques/conceptuels
      J’ai l’impression que peu de gens se préoccupent encore vraiment de cette distinction aujourd’hui
    • La conversion de SQL vers ER sert à comprendre une base de données qu’on découvre
      La base existe déjà, mais il peut ne pas y avoir d’ERD, ni presque aucune documentation
      C’est donc davantage un outil d’exploration, et idéalement il devrait permettre de créer des vues et d’ajouter des notes
      Parce qu’on n’a pas forcément besoin de voir tout l’ERD d’un coup quand il y a énormément de tables ou que beaucoup n’ont pas de clés étrangères
    • J’aimerais bien une explication plus détaillée de la différence
      En pratique, les deux sont presque interchangeables, mais conceptuellement il peut y avoir une couche de sens plus riche au-dessus des entités et des relations
      Par exemple des descriptions de relations ou des annotations supplémentaires associées aux entités
    • J’aimerais bien plus de détails
      J’avais toujours compris qu’une entité était en relation 1:1 avec une table, donc un exemple aiderait beaucoup
  • La facilité d’usage sur mobile mérite 1000 sur 100
    Le panoramique, le zoom, la sélection et le déplacement sont tellement fluides que j’ai cru halluciner

    • L’ensemble du codebase est franchement rafraîchissant : https://github.com/royalbhati/sqltoerdiagram/blob/main/src/m...
      J’aime les développeurs capables de distiller un problème complexe en une solution simple, et celui-ci est vraiment excellent
      Je ne vois pas compliment plus élevé à adresser à un développeur
    • Ma première pensée a été qu’il faudrait extraire la partie diagramme en bibliothèque séparée
      Cette fonctionnalité de diagramme semble pouvoir servir à bien d’autres choses que les ERD
    • C’est vraiment excellent
      Même en éditant par double tap, le niveau de zoom n’est pas réinitialisé
      C’est clairement l’un des sites les plus adaptés au mobile que j’aie vus jusqu’ici
    • Le seul bémol, c’est que Safari mobile zoome quand on touche un champ texte, mais c’est un problème que tout le monde subit
  • Ce n’est rien d’énorme, juste un petit outil, mais je me suis dit qu’il pourrait être utile à d’autres
    J’ai dû visualiser des schémas de base de données à plusieurs reprises, et la plupart des outils avaient un paywall, une inscription obligatoire, ou envoyaient le SQL sur les serveurs de quelqu’un d’autre
    Pas de backend, pas de compte, les données ne quittent pas mon appareil
    Il y a aussi eu des aspects amusants à implémenter : au lieu d’utiliser le DOM/SVG, les tables sont rasterisées en bitmaps mis en cache, avec du viewport culling pour garder une navigation fluide même avec des centaines de tables à l’écran
    Le parseur SQL suit la plage source de chaque token, ce qui permet à des modifications comme le renommage d’une table de ne changer précisément que les identifiants et références concernés, tout en conservant les commentaires et le formatage
    L’URL contient le schéma complet, et le partage fonctionne en sérialisant le schéma directement dans l’URL, sans backend, état stocké ni compte
    J’ai aussi expérimenté une version Rust/WASM, mais le coût à la frontière JS↔WASM dépassait le gain de calcul, ce qui rendait le parseur environ 37 % plus lent ; en revanche, la passe de résolution des chevauchements en O(n^2) était environ 2,2 fois plus rapide
    Au final je suis resté sur du JavaScript pur, pour environ 32 KB gzip sans framework

    • Le titre dit que c’est gratuit, mais dans ce cas je me demande quelle licence de logiciel libre est utilisée
      Si aucune licence n’est précisée, ça peut être open source, mais pas du logiciel libre
    • Si l’URL contient le schéma complet, est-ce que ça ne risque pas de poser problème avec les limites de longueur des URL ?
      « Il est RECOMMANDÉ que tous les émetteurs et destinataires prennent en charge des URI d’au moins 8000 octets dans les éléments de protocole. »
      https://www.rfc-editor.org/rfc/rfc9110#section-4.1-5
    • C’est vraiment très bien fait
      C’est responsive, propre, et l’expérience d’onboarding sans friction ni inscription est excellente
  • La distinction entre « entité » et « table » existe bel et bien, mais pour la grande majorité des développeurs qui veulent visualiser rapidement un schéma existant, c’est largement suffisant
    Ici, le mieux est l’ennemi du bien
    La plupart des gens n’essaient pas de construire une abstraction ORM ; ils veulent juste voir ce qui est connecté à quoi

  • Ça me fait penser à https://explain.dalibo.com/
    C’est un outil de visualisation des plans d’exécution de requêtes, et l’un des plus utiles que j’aie utilisés pour l’optimisation SQL
    Pour des données sensibles, mieux vaut télécharger la version v2 entièrement hors ligne disponible en bas de page

  • Ce serait bien d’avoir aussi des options pour des lignes droites et des angles à 90°
    Je n’ai jamais trop aimé les lignes courbes, même si visuellement c’est réussi et bien fait

    • Je vais l’ajouter à la todo list
  • Je me demande s’il existe un moyen de générer ces SVG en CLI
    J’aime vraiment beaucoup, et l’extension Postgres pour VSCode qui fait quelque chose de similaire est bien aussi, mais elle reste liée à VSCode
    Elle n’offre pas non plus d’option CLI exportable qu’on puisse versionner dans un dépôt

  • J’utilise https://github.com/ondras/wwwsqldesigner ; à mon avis, ça vaut le coup de le considérer comme point de comparaison

    • C’est bien l’Ondras de V8CGI ?
      J’adorais ce projet, c’était l’une des toutes premières implémentations de JS côté serveur
      Peut-être que j’étais le seul fan, mais Ondřej, ton travail était vraiment excellent
  • C’est correct, mais il n’y a pas de fichier LICENSE sur GitHub : https://github.com/royalbhati/sqltoerdiagram