SQL na ERD — vizualizace schémat CREATE TABLE jako entitně-vztahových diagramů
SQL do ERD
Vložte jeden nebo více příkazů CREATE TABLE a tento nástroj nakreslí schéma: každá tabulka se stane entitou, sloupce se stanou atributy označenými PK / FK a omezení FOREIGN KEY se stanou čarami vztahů. Pokud schéma nedeklaruje žádné cizí klíče, nabídnou se sloupce jako customer_id jako odvozené vztahy, které můžete ponechat nebo zahodit. Zdrojový kód Mermaid erDiagram můžete zkopírovat nebo diagram exportovat jako SVG / PNG. Vše běží lokálně — žádné schéma nikdy neopustí váš prohlížeč.
Co je ERD? ERD znamená Entity Relationship Diagram — obrázek toho, jak je databáze uspořádána. Skládá se ze tří druhů tvarů: entity (tabulky, kreslené jako krabice), atributy (sloupce uvedené uvnitř krabice) a vztahy (čáry spojující dvě krabice). Technika pochází z modelu entity-vztah Petera Chena z roku 1976 a je stále běžným způsobem, jak načrtnout schéma před psaním jakéhokoli DDL: dobrý ERD ukazuje na první pohled, které tabulky existují, co každý řádek ukládá a jak řádek jedné tabulky ukazuje na řádek jiné — čitelné i pro lidi, kteří nechtějí číst 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.
Kardinalita — kolik řádků je povoleno na každém konci čáry: jeden k jednomu, jeden k mnoha nebo mnoho k mnoha. Tato stránka kreslí notaci vraní nohy, kterou používá Mermaid (viz legenda v kroku 4).
Notace: notace Chen používá kosočtverce pro vztahy a elipsy pro atributy; notace vraní noha (ta zde kreslená) shrnuje entitu do jediného pole s atributy uvnitř a označuje konec „mnoho“ čáry třízubou „vraní nohou“; diagramy tříd UML popisují tutéž strukturu třídami, operacemi a násobnostmi. Všechny tři říkají totéž o schématu — liší se jen symboly.
1 — Schéma tabulek (DDL)
2 — Entity
Nakreslit
Tabulka
Sloupce
Vztahy
Atributy
Zatím nebyla zpracována žádná tabulka.
3 — Vztahy
Použití
Potomek (mnoho)
Actions
Rodič (jeden)
Zdroj
Actions
Zatím žádné vztahy.
Přidat vztah ručně:
→
4 — Diagram
Zdroj Mermaid erDiagram
Jak se čtou vztahy: cizí klíč na tabulce potomka vytvoří PARENT ||--o{ CHILD. Entity a atributy si ponechávají názvy z DDL, znaky, které Mermaid nedokáže nakreslit (mezery, pomlčky), se zobrazují jako podtržítka. Typy se zjednodušují na základní slovo (DECIMAL(10,2) → DECIMAL), protože syntaxe diagramu nebere parametry.
Symboly kardinality (vraní noha): značka u entity říká, kolik řádků smí stát na tomto konci čáry — || přesně jeden, o| nula nebo jeden, o{ nula nebo více, |{ jeden nebo více. Takže PARENT ||--o{ CHILD se čte jako „jeden řádek rodiče může být odkazován nula, jedním nebo více řádky potomků a každý řádek potomka ukazuje přesně na jednoho rodiče“ — klasický vztah jedna-k-mnoha.
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.