SQL a ERD

Incolli una o più istruzioni CREATE TABLE e questo strumento disegna lo schema: ogni tabella diventa un'entità, le colonne diventano attributi etichettati PK / FK, e i vincoli FOREIGN KEY diventano linee di relazione. Quando uno schema non dichiara chiavi esterne, colonne come customer_id vengono proposte come relazioni dedotte che può mantenere o eliminare. Copi il sorgente Mermaid erDiagram oppure esporti il diagramma in SVG / PNG. Tutto funziona localmente — nessuno schema lascia mai il suo browser.
Che cos'è un ERD? ERD sta per Entity Relationship Diagram (diagramma entità-relazione) — un'immagine di come è organizzato un database. È disegnato con tre tipi di forme: entità (le tabelle, disegnate come riquadri), attributi (le colonne elencate dentro un riquadro) e relazioni (le linee che uniscono due riquadri). La tecnica viene dal modello entità-relazione di Peter Chen del 1976 ed è ancora il modo usuale per abbozzare uno schema prima di scrivere qualsiasi DDL: un buon ERD mostra a colpo d'occhio quali tabelle esistono, che cosa memorizza ogni riga e come una riga di una tabella punta a una riga di un'altra — leggibile anche da chi non vuole leggere SQL.
Entity — one thing the system keeps data about, such as a customer, an order or a product. In a relational database each entity becomes one table.
Attribute — one fact recorded for every row of an entity, such as a name, a price or a date. Each attribute becomes one column.
Relationship — an association between two entities, implemented by a foreign key: the child table stores the parent’s key, and the diagram turns that column into a line.
PK / FK — a primary key (PK) identifies each row of a table uniquely; a foreign key (FK) holds the primary key of another table and is what a relationship line represents.
Cardinalità — quante righe sono ammesse a ciascuna estremità di una linea: uno-a-uno, uno-a-molti o molti-a-molti. Questa pagina disegna la notazione a zampa di corvo usata da Mermaid (veda la legenda nel passo 4).
Notazioni: la notazione di Chen usa rombi per le relazioni ed ellissi per gli attributi; la notazione a zampa di corvo (quella disegnata qui) comprime un'entità in un unico riquadro con i suoi attributi elencati dentro e marca l'estremità «molti» di una linea con una «zampa di corvo» a tre punte; i diagrammi delle classi UML descrivono la stessa struttura con classi, operazioni e molteplicità. Tutte e tre dicono la stessa cosa sullo schema — cambiano solo i simboli.
1 — Schema delle tabelle (DDL)
2 — Entità
Disegna Tabella Colonne Relazioni Attributi
Nessuna tabella analizzata ancora.
3 — Relazioni
Usa Figlia (molti) Actions Padre (uno) Origine Actions
Nessuna relazione ancora.
Aggiunga a mano una relazione:
→
4 — Diagramma
Sorgente Mermaid erDiagram
Come si leggono le relazioni: una chiave esterna nella tabella figlia produce PARENT ||--o{ CHILD. Entità e attributi mantengono i nomi del DDL, con i caratteri che Mermaid non può disegnare (spazi, trattini) mostrati come trattini bassi. I tipi sono semplificati alla parola base (DECIMAL(10,2) → DECIMAL) perché la sintassi del diagramma non accetta parametri.
Simboli di cardinalità (zampa di corvo): il segno accanto a un'entità indica quante righe possono stare su quell'estremità della linea — || esattamente una, o| zero o una, o{ zero o molte, |{ una o molte. Quindi PARENT ||--o{ CHILD si legge «una riga padre può essere referenziata da zero, una o molte righe figlie, e ogni riga figlia punta esattamente a una riga padre» — il classico collegamento uno-a-molti.
Many-to-many is never a single line: a product can appear in many orders and an order can hold many products, so the schema stores a join table (order_items) whose two foreign keys become two one-to-many lines. Read through that middle box and the many-to-many is there.