SQL do ERD

Wklej jedną lub więcej instrukcji CREATE TABLE, a to narzędzie narysuje schemat: każda tabela staje się encją, kolumny stają się atrybutami oznaczonymi PK / FK, a ograniczenia FOREIGN KEY stają się liniami związków. Gdy schemat nie deklaruje kluczy obcych, kolumny takie jak customer_id są proponowane jako wywnioskowane związki, które można zachować lub usunąć. Skopiuj źródło Mermaid erDiagram albo wyeksportuj diagram jako SVG / PNG. Wszystko działa lokalnie — żaden schemat nigdy nie opuszcza przeglądarki.
Czym jest ERD? ERD to Entity Relationship Diagram — diagram związków encji, obraz tego, jak zorganizowana jest baza danych. Składa się z trzech rodzajów kształtów: encji (tabel, rysowanych jako pudełka), atrybutów (kolumn wypisanych w pudełku) i związków (linii łączących dwa pudełka). Technika pochodzi z modelu związków encji Petera Chena z 1976 roku i nadal jest zwykłym sposobem szkicowania schematu przed napisaniem jakiegokolwiek DDL: dobry ERD pokazuje na pierwszy rzut oka, jakie tabele istnieją, co przechowuje każdy wiersz i jak wiersz jednej tabeli wskazuje na wiersz innej — czytelny dla osób, które nie chcą czytać 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.
Krotność — ile wierszy jest dozwolonych na każdym końcu linii: jeden-do-jednego, jeden-do-wielu czy wiele-do-wielu. Ta strona rysuje notację kurzej łapki, której używa Mermaid (zob. legenda w kroku 4).
Notacje: notacja Chena używa rombów dla związków i elips dla atrybutów; notacja kurzej łapki (ta, którą rysujemy tutaj) zwija encję do jednego pudełka z atrybutami w środku i oznacza stronę „wielu” trzyzębną „kurzą łapką”; diagramy klas UML opisują tę samą strukturę klasami, operacjami i krotnościami. Wszystkie trzy mówią to samo o schemacie — różnią się tylko symbolami.
1 — Schemat tabel (DDL)
2 — Encje
Rysuj Tabela Kolumny Relacje Atrybuty
Nie sparsowano jeszcze żadnej tabeli.
3 — Związki
Użycie Dziecko (wiele) Actions Rodzic (jeden) Źródło Actions
Brak jeszcze powiązań.
Dodaj powiązanie ręcznie:
→
4 — Diagram
Źródło Mermaid erDiagram
Jak czyta się związki: klucz obcy w tabeli dziecka tworzy PARENT ||--o{ CHILD. Encje i atrybuty zachowują nazwy z DDL, a znaki, których Mermaid nie potrafi narysować (spacje, myślniki), są pokazywane jako podkreślenia. Typy są uproszczone do słowa bazowego (DECIMAL(10,2) → DECIMAL), bo składnia diagramu nie przyjmuje parametrów.
Symbole krotności (stopka kurzej łapki): znak przy encji mówi, ile wierszy może stać na tym końcu linii — || dokładnie jeden, o| zero lub jeden, o{ zero lub wiele, |{ jeden lub wiele. Zatem PARENT ||--o{ CHILD czytamy: „jeden wiersz rodzica może być wskazany przez zero, jeden lub wiele wierszy dziecka, a każdy wiersz dziecka wskazuje dokładnie jednego rodzica” — klasyczne powiązanie jeden-do-wielu.
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.