Документация / PlantUML

ER-диаграммы

ER-диаграммы показывают сущности предметной области и связи между ними. PlantUML поддерживает две нотации: информационную инженерию («вороньи лапки») и нотацию Чена.

Для схем баз данных, из которых нужно получить SQL, удобнее инструмент DBML: он строит ER-диаграмму и экспортирует DDL.

Информационная инженерия

Сущность объявляется словом entity; * отмечает обязательные поля, -- отделяет ключ от остальных атрибутов.

@startuml
hide circle
skinparam linetype ortho

entity "Покупатель" as customer {
  * id : uuid <<PK>>
  --
  * email : varchar
  name : varchar
}

entity "Заказ" as order {
  * id : uuid <<PK>>
  --
  * customer_id : uuid <<FK>>
  * created_at : timestamp
  status : varchar
}

entity "Позиция заказа" as item {
  * order_id : uuid <<FK>>
  * product_id : uuid <<FK>>
  --
  qty : int
}

customer ||--o{ order : оформляет
order ||--|{ item : содержит
@enduml

hide circle убирает значок класса, skinparam linetype ortho рисует связи прямыми углами.

Кардинальности

Концы связи описывают, сколько экземпляров может быть с каждой стороны.

Обозначение слеваОбозначение справаЗначение
|o----o|ноль или один
||----||ровно один
}o----o{ноль или много
}|----|{один или много

Например, customer ||--o{ order — у покупателя ноль или много заказов, у заказа ровно один покупатель. Пунктирная линия (..) обозначает неидентифицирующую связь: customer ||..o{ review.

Нотация Чена

Диаграмма описывается между @startchen и @endchen: сущности, отношения (ромбы) и атрибуты (овалы).

@startchen
entity ПОКУПАТЕЛЬ {
  Id <<key>>
  Имя
  Email
}
entity ЗАКАЗ {
  Номер <<key>>
  Дата
}
relationship ОФОРМЛЯЕТ {
}
ПОКУПАТЕЛЬ -1- ОФОРМЛЯЕТ
ОФОРМЛЯЕТ -N- ЗАКАЗ
@endchen
  • <<key>> — ключевой атрибут, <<derived>> — вычисляемый, <<multi>> — многозначный;
  • кратности указываются в связи: -1-, -N-, -M-;
  • =1= (двойная линия) — полное участие сущности в отношении.

Обновлено: 30 сентября 2026 г.