SQL в ERD

Вставьте один или несколько операторов CREATE TABLE, и этот инструмент нарисует схему: каждая таблица становится сущностью, столбцы — атрибутами с метками PK / FK, а ограничения FOREIGN KEY превращаются в линии связей. Если схема не объявляет внешних ключей, такие столбцы, как customer_id, предлагаются как выведенные связи, которые можно оставить или убрать. Скопируйте исходник Mermaid erDiagram или экспортируйте диаграмму в SVG / PNG. Всё работает локально — ни одна схема не покидает ваш браузер.
Что такое ERD? ERD — это Entity Relationship Diagram, диаграмма «сущность-связь» — изображение того, как организована база данных. Она строится из трёх видов элементов: сущностей (таблицы, нарисованные как прямоугольники), атрибутов (столбцы, перечисленные внутри прямоугольника) и связей (линии, соединяющие два прямоугольника). Метод восходит к модели «сущность-связь» Питера Чена (1976) и до сих пор является обычным способом набросать схему перед написанием DDL: хорошая ERD показывает с первого взгляда, какие таблицы существуют, что хранит каждая строка и как строка одной таблицы ссылается на строку другой — её может прочитать тот, кто не хочет читать 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.
Кардинальность — сколько строк допускается на каждом конце линии: «один к одному», «один ко многим» или «многие ко многим». Эта страница рисует нотацию «вороньей лапки», которую использует Mermaid (см. легенду на шаге 4).
Нотации: нотация Чена использует ромбы для связей и эллипсы для атрибутов; нотация «вороньей лапки» (та, что нарисована здесь) сворачивает сущность в один прямоугольник с атрибутами внутри и помечает «многий» конец линии трёхзубцовой «вороньей лапкой»; UML-диаграммы классов описывают ту же структуру классами, операциями и кратностями. Все три говорят об одном и том же в схеме — различаются только символы.
1 — Схема таблиц (DDL)
2 — Сущности
Нарисовать Таблица Столбцы Связи Атрибуты
Таблицы ещё не разобраны.
3 — Связи
Использовать Дочерняя (многие) Actions Родительская (одна) Источник Actions
Связей пока нет.
Добавить связь вручную:
→
4 — Диаграмма
Исходник Mermaid erDiagram
Как читаются связи: внешний ключ в дочерней таблице порождает PARENT ||--o{ CHILD. Сущности и атрибуты сохраняют имена из DDL, а символы, которые Mermaid не умеет рисовать (пробелы, дефисы), показаны как подчёркивания. Типы упрощены до базового слова (DECIMAL(10,2) → DECIMAL), поскольку синтаксис диаграммы не принимает параметров.
Обозначения кардинальности («вороньей лапки»): метка у сущности показывает, сколько строк может стоять на этом конце линии — || ровно одна, o| ноль или одна, o{ ноль или много, |{ одна или много. Так что PARENT ||--o{ CHILD читается как «одна родительская строка может ссылаться на ноль, одну или много дочерних строк, а каждая дочерняя строка указывает ровно на одну родительскую» — классическая связь «один ко многим».
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.