Документация / 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 г.
