ERD-диаграммы
Создавайте диаграммы «сущность-связь» (ERD) для моделирования структур баз данных и связей между данными.
Что такое ERD?
ERD-диаграмма («сущность-связь») визуализирует:
- Сущности: таблицы базы данных или объекты
- Атрибуты: свойства сущностей
- Связи: как сущности соединяются друг с другом
- Кардинальность: характер связей (один-к-одному, один-ко-многим и т. д.)
Создание ERD
Добавление сущностей
- Выберите инструмент Таблица на панели инструментов и щёлкните на холсте, чтобы создать таблицу для каждой сущности
- Используйте первую строку как имя сущности, а последующие строки — для атрибутов
О редактировании строк, столбцов и текста ячеек см. Таблицы.
Каждая сущность обычно содержит:
- Имя сущности (заголовок)
- Поле (поля) первичного ключа
- Прочие атрибуты
Добавление связей
- Выберите Инструмент «Соединитель»
- Проведите линию между связанными сущностями
- Задайте подходящие стрелки для отображения кардинальности
Нотация «воронья лапка»
Нотация «воронья лапка» — самый распространённый стиль ERD. Она использует символы на концах коннекторов для отображения кардинальности.
Символы кардинальности
| Символ | Значение |
|---|---|
| ` | ` (одна черта) |
○ (кружок) | Ноль (необязательно) |
< или > (воронья лапка) | Много |
Распространённые связи
| Обозначение | Начало | Конец | Значение |
|---|---|---|---|
| Один-к-одному | ` | ` | ` |
| Один-ко-многим | ` | ` | < |
| Многие-ко-многим | < | > | Несколько связаны с несколькими |
| Ноль-или-один | `○ | ` | ` |
| Ноль-или-много | ○< | ` | ` |
Применение стрелок «воронья лапка»
- Выберите коннектор между сущностями
- На вкладке Инспектора Стиль перейдите в раздел Соединитель
- Выберите Начальную стрелку и Конечную стрелку из списка Встроенные стрелки. Стрелки для ERD:
| Стрелка | Типичное значение |
|---|---|
| Двойная черта | Ровно один (‖) |
| Черта-кружок | Ноль или один (○|) |
| Лапка вороны | Много |
| Лапка-черта | Один или много (|<) |
| Лапка-кружок | Ноль или много (○<) |
Лапка-сегмент и Лапка-кружок-круг — альтернативные варианты отображения концов «один-или-много» и «ноль-или-много».
Также можно щёлкнуть правой кнопкой мыши на конце коннектора, чтобы выбрать его стрелку.
Пример работы с ERD
Шаг 1. Определение сущностей
Для базы данных интернет-магазина:
- Customer (Клиент)
- Order (Заказ)
- Product (Товар)
- OrderItem (Позиция заказа)
Шаг 2. Определение атрибутов
Customer
- customer_id (PK)
- name
- phone
Order
- order_id (PK)
- customer_id (FK)
- order_date
- total
Шаг 3. Рисование сущностей
- Создайте таблицу инструментом Таблица для каждой сущности
- Добавьте имена сущностей в качестве заголовков
- Перечислите атрибуты внутри каждой таблицы
- Отметьте первичные ключи (PK) и внешние ключи (FK)
Шаг 4. Добавление связей
- Проведите коннектор от Customer к Order
- Установите конец «один» у Customer (|)
- Установите конец «много» у Order (<)
- Это показывает: у одного клиента может быть много заказов
Шаг 5. Подпись связей
Добавьте текстовые подписи к коннекторам:
- «places» (Customer → Order)
- «contains» (Order → OrderItem)
- «is product in» (Product → OrderItem)
Рекомендации по ERD
Компоновка
- Располагайте связанные сущности рядом друг с другом
- Используйте одинаковый размер сущностей
- Выравнивайте сущности по сетке
- Сводите к минимуму пересечения коннекторов
Именование
- Используйте существительные в единственном числе для сущностей (Customer, а не Customers)
- Используйте единый стиль именования (camelCase, snake_case)
- Подписывайте связи глаголами
Документирование
- Указывайте первичные ключи для всех сущностей
- Чётко показывайте внешние ключи
- Рассмотрите возможность указания типов данных
- Отмечайте все ограничения
Советы
- Начните с текста: вставьте
erDiagramиз Mermaid через Правка → Вставить Mermaid (PRO), чтобы получить черновик, а затем доработайте его — см. Поддержка Mermaid - Используйте автокомпоновку: помогает упорядочить сложные диаграммы
- Группируйте связанные сущности: создаёт логические разделы
- Экспортируйте для документации: включайте в технические спецификации и вики
- Контроль версий: сохраняйте итерации по мере развития базы данных