Kostenloses Tool

Prisma-Schema als ER-Diagramm

Fügen Sie eine schema.prisma-Datei ein oder legen Sie alle Dateien eines mehrteiligen Schemas ab, und erhalten Sie ein ER-Diagramm: eine Karte pro Model mit skalaren Feldern und Schlüsseln und eine Linie für jede Relation, implizite Many-to-many-Relationen eingeschlossen. Zum Ausprobieren brauchen Sie kein Konto.

Beispielausgabe

Beispieldiagramm aus einem Prisma-Beispiel
Beispiel ausprobierenOnlineshop

So funktioniert es

  1. Prisma-Schema einfügen oder ablegen

    Eine schema.prisma-Datei oder alle .prisma-Dateien eines Ordners prisma/schema, gemeinsam abgelegt. Die Blöcke datasource und generator dürfen bleiben; gelesen wird nur provider.

  2. Models und Relationen ansehen

    Jedes Model wird zu einer Karte mit seinen skalaren Feldern und deren Prisma-Typen. Jede Relation mit fields und references wird zu einer Linie vom Fremdschlüsselfeld zu dem Feld, auf das es verweist.

  3. In Archboard öffnen

    Speichern Sie es als neues Diagramm, um es umzuordnen, zu kommentieren, per Link zu teilen oder als SVG und PNG zu exportieren. Für die Registrierung genügt ein Google- oder GitHub-Konto.

Was aus einem Prisma-Schema gezeichnet wird

Das Diagramm entsteht aus diesen Teilen von schema.prisma:

  • model

    Jedes Model als Karte mit seinem Namen und einer Zeile pro skalarem Feld, der Typ in Prisma-Schreibweise wie String? oder Int[]. Enum-Felder und Felder mit zusammengesetztem Typ werden ebenfalls aufgeführt.

  • @relationfieldsreferences

    Relationen mit fields und references, gezeichnet vom Fremdschlüsselfeld zum referenzierten Feld mit Krähenfuß-Enden. Ein eindeutiger Fremdschlüssel macht die Relation eins zu eins, ein optionales Relationsfeld macht das andere Ende optional. Zusammengesetzte Fremdschlüssel funktionieren ebenfalls.

  • Category[]Product[]

    Implizite Many-to-many-Relationen, bei denen zwei Models einander auflisten, etwa Category[] und Product[]. Sie werden als eine Linie mit „viele“ an beiden Enden gezeichnet, ohne die versteckte Verknüpfungstabelle, die Prisma anlegt.

  • @id@@id

    Primärschlüssel aus dem id-Attribut eines Felds oder aus einer id auf Blockebene über mehrere Felder, an jedem Feld als PK markiert.

  • @unique@@unique

    Eindeutige Felder, als UK markiert. Ein UNIQUE-Constraint auf Blockebene über mehrere Felder wird nicht an jedem Feld markiert, aber eine Relation, deren Fremdschlüssel genau diese Felder nutzt, wird eins zu eins gezeichnet.

  • @@schema

    Models, die in einem Projekt mit mehreren Schemas Datenbankschemas zugeordnet sind, gezeichnet in einem Rahmen pro Schema.

  • type

    Mit type deklarierte zusammengesetzte Typen in einem MongoDB-Schema, angezeigt als Typ des Felds, das sie einbettet, statt als eigene Karten.

Was ein Prisma-Diagramm nicht zeigt

  • Relationsfelder wie posts Post[] oder author User. Sie existieren nur auf Prisma-Ebene, nicht in der Datenbank; deshalb werden sie zu Linien statt zu Zeilen, und jede Karte listet nur Felder, die in der Datenbank gespeichert sind.
  • Relationen zu Models in Dateien, die Sie nicht mitgegeben haben. Ist ein Schema auf mehrere Dateien verteilt, legen Sie alle zusammen ab; ein Model, das nicht gefunden wird, erscheint als Warnung statt im Diagramm.
  • Mit view-Blöcken deklarierte Views, die übersprungen und gezählt werden, sowie Models oder Felder, die mit dem ignore-Attribut markiert sind.
  • Standardwerte wie autoincrement(), now() oder dbgenerated-Ausdrücke, native Datenbanktypen wie VarChar(255), Dokumentationskommentare und die datasource-URL.

Fragen zum Prisma-Schema

Mein Schema ist auf mehrere Dateien verteilt. Wie erstelle ich das Diagramm?

Legen Sie den ganzen Ordner prisma/schema ab oder wählen Sie alle seine .prisma-Dateien auf einmal aus. Sie werden als ein Schema gelesen, sodass auch Relationen zwischen Models in verschiedenen Dateien gezeichnet werden. Eine einzelne Datei funktioniert ebenfalls; Relationen zu Models in anderen Dateien erscheinen dann als Warnungen.

Funktioniert es mit MongoDB-Schemas?

Ja. Mit dem Provider mongodb erscheinen zusammengesetzte Typen als Feldtypen, ObjectId-Fremdschlüssel werden zu Relationslinien, und eine Many-to-many-Relation, die auf beiden Models als ID-Liste gespeichert ist, wird als eine einzige Linie ohne FK-Markierung gezeichnet.

Nutzt das Diagramm Model- oder Tabellennamen?

Model-Namen, also die, die Sie in Prisma Client verwenden. Mit den map-Attributen gesetzte Tabellen- und Spaltennamen werden nicht angezeigt; ein Model Customer, das auf eine Tabelle customers abgebildet ist, erscheint als Customer.

Wie werden implizite Many-to-many-Relationen dargestellt?

Als eine Linie zwischen den beiden Models mit „viele“ an beiden Enden. Prisma hält diese Relationen in einer versteckten Verknüpfungstabelle wie _CategoryToProduct, die nicht gezeichnet wird. Eine Relationstabelle, die Sie selbst modellieren, erscheint als normale Karte mit zwei Relationen.

Was wird gespeichert, wenn ich das Diagramm in Archboard öffne?

Die Vorschau wird nicht gespeichert. Wenn Sie In Archboard öffnen wählen, wird das gezeichnete Diagramm mit Model-Karten, Feldnamen und Typen und Relationslinien als neues Diagramm in Ihrem Workspace gespeichert. Spätere Änderungen an schema.prisma aktualisieren es nicht.

Ist das Tool für Prisma-ER-Diagramme kostenlos?

Ja. Für das Einfügen eines Schemas und die Ansicht des Diagramms brauchen Sie kein Konto. Zum Öffnen des Diagramms in Archboard genügt ein kostenloses Konto.

In einer Minute ein Canvas öffnen

Melden Sie sich mit Google oder GitHub an. Kostenlos für einen Sitzplatz. Upgrade, wenn das Team dazukommt.