Mermaid.js ERD-Syntaxleitfaden

Was ist ein Entitäts-Beziehungs-Diagramm (ERD)?

Ein Entitäts-Beziehungs-Diagramm (ERD) ist eine strukturelle Bauplan, die zur Gestaltung, Dokumentation und Analyse relationaler Datenbank-Schemata verwendet wird. Er zeigt die spezifischen Daten-Tabellen (Entitäten) innerhalb einer Anwendung, die Spalten (Attribute), die in diesen Tabellen enthalten sind, sowie die Referenzintegritätsregeln, die sie verbinden. Geschrieben mit standardmäßiger Information Engineering (IE)-Notation, verwendet sie klare Crow’s-Foot-NotationKöpfe, um Datenbeschränkungen und Mehrfachtabellen-Abhängigkeiten anzuzeigen.

Mit Mermaid.js, können Sie Ihre Produktions-Tabellen-Indizes, Datentypen und Fremdschlüssel-Verbindungen mithilfe eines sauberen, deklarativen Textblocks definieren. Die Engine verarbeitet automatisch die Größenanpassung für mehrspaltige Layout-Container und leitet Verbindungsleitungen so, dass Textbeschriftungen sich nicht überlappen.

Grundlagen-Syntaxleitfaden: Elemente und Konstrukte

Die Erstellung eines gültigen, vollständig ausführbaren Datenbankschemas in Mermaid basiert auf strukturellen Entitätsblöcken, Datentyp-Zuordnungen, Index-Taggen und Kardinalitätsoperatoren.

1. Deklaration von Entitäten und Tabellenspalten

Sie initialisieren eine ERD-Leinwand in Zeile eins mit dem Schlüsselwort erDiagram Schlüsselwort. Um eine Tabelle zu definieren, schreiben Sie den Entitätsnamen gefolgt von einer offenen geschweiften Klammer und listen Ihre Spaltenkonfigurationen zeilenweise nacheinander auf:

2. Kennzeichnung von Primärschlüsseln, Fremdschlüsseln und Kommentaren

Der ERD-Engine von Mermaid können Sie strukturelle Index-Taggen direkt nach dem Spaltennamen und der Datentypdefinition zuweisen. Sie können einer Spalte auch einen optionalen Textkommentar hinzufügen, indem Sie ihn in doppelte Anführungszeichen setzen:

  • PK — Markiert eine Spalte explizit als Primärschlüssel der Tabelle.
  • FK — Markiert eine Spalte als Fremdschlüssel, der mit einer übergeordneten Tabelle verknüpft ist.
erDiagram
    ORDERS {
        int id PK
        int user_id FK "Verweist auf USERS.id"
        string coupon_code
    }

3. Beherrschen der Cardinality-Modifikatoren nach Crow’s Foot

Um Tabellen zu verbinden und Integritätsregeln für Referenzen durchzusetzen, stellen Sie ihre Beziehungen mit spezialisierten Linienoperatoren dar. Die Zeichenköpfe bilden visuelle Krähenfußformen, die die Beschränkungen der Datenvielfalt festlegen:

  • ||--|| **Genau eine zu genau einer:** Eine strenge, obligatorische 1:1-Zuordnung.
  • ||--o| **Genau eine zu null oder einer:** Eine optionale 1:1-Abhängigkeit.
  • ||--|{ **Genau eine zu einer oder mehreren:** Eine obligatorische 1:N-Elternverbindung.
  • ||--o{ **Genau eine zu null, einer oder mehreren:** Eine Standard-Beziehung mit optionaler 1:N-Verbindung.

Best Practices für relationale Datenbank-Schemata

  • Konsistente Groß-/Kleinschreibung bei Tabellennamen beibehalten: Halten Sie Entitätsnamen vorhersehbar. Verwenden Sie Großbuchstaben (z. B. USER_ACCOUNTS) oder strikte Kleinbuchstaben in snake_case (z. B. user_accounts) um Ihren echten SQL-Infrastrukturcodes anzupassen.
  • Daten-Typen immer angeben: Vermeiden Sie das Deklarieren von Rohtextspalten ohne Typen. Geben Sie Definitionen explizit an, wie int, varchar, oder boolean stellt sicher, dass Ihre Architekturdiagramme als genaue technische Referenz dienen.
  • Halten Sie Beziehungsbezeichnungen als Verben: Beim Verknüpfen von Elementen geben Sie eine kurze, kleine aktive Verbenzeichenfolge innerhalb Ihrer Beziehungszuweisung an (z. B. ||--o{ : "enthält") zur Dokumentation der Geschäftslogik-Zuordnung.

Realitätsnahe Mermaid.js ERD-Beispiele

Beispiel 1: Kernmodell für E-Commerce-Transaktionen (Schlüssel & Zuordnungen)

Dieser funktionale Bauplan modelliert eine zentrale Transaktions-Schleife einer E-Commerce-Datenbank und zeigt, wie Benutzer, Bestellungen und Zahlungsverfolgungssysteme über strenge Krähenfuß-Beschränkungen miteinander verknüpft sind.

erDiagram
    CUSTOMERS {
        int id PK
        string email
        string password_hash
    }

    ORDERS {
        int id PK
        int customer_id FK
        decimal total_amount
        string status
    }

    TRANSACTION_LEDGERS {
        int id PK
        int order_id FK
        string reference_token
        string gateway
    }

    CUSTOMERS ||--o{ ORDERS : "stellt" 
    ORDERS ||--|| TRANSACTION_LEDGERS : "erzeugt" 

Syntax-Aufschlüsselung: Dieses Schema stellt die Transaktionsgrenzen klar dar. Die Zuordnungsregeln legen fest, dass ein Kunde über die Zeit null oder viele Bestellungen aufgeben kann (||--o{), während eine einzelne Bestellungs-Datei genau eine entsprechende Transaktionsbuch-Einträge erzeugen muss (||--||).

Beispiel 2: Schema eines Unternehmens-Content-Management-Systems (Many-to-Many-Verknüpfung)

Dieser fortgeschrittene Datenbankbauplan zeigt die Architektur einer Content-Management-Plattform auf. Er erläutert, wie komplexe Many-to-Many-Konfigurationen durch Einführung einer expliziten Brücken-Zuordnungs-Entität gelöst werden können.

erDiagram
    POSTS {
        int id PK
        string title
        string slug
        text body_content
    }

    CATEGORIES {
        int id PK
        string name
        string description
    }

    POST_CATEGORY_MAPPINGS {
        int post_id PK, FK
        int category_id PK, FK
        timestamp assigned_at
    }

    COMMENTS {
        int id PK
        int post_id FK
        string author_name
        text comment_body
    }

    POSTS ||--o{ POST_CATEGORY_MAPPINGS : "enthält"
    CATEGORIES ||--o{ POST_CATEGORY_MAPPINGS : "kategorisiert"
    POSTS ||--o{ COMMENTS : "hängt an" 

Syntax-Aufschlüsselung: Um die Many-to-Many-Beziehung zwischen `POSTS` und `CATEGORIES` zu handhaben, führt das Skript eine Schnittstelle-Tabelle (`POST_CATEGORY_MAPPINGS`) ein. Diese Zuordnungsbox verwendet zusammengesetzte Schlüssel, die gleichzeitig als Primär- und Fremdschlüssel wirken (PK FK), die die äußeren Knoten mithilfe der Standard-Many-to-One-Krähenfuß-Verbindungen verknüpft.

Nach oben scrollen