Найти в Дзене
Системный Пазл

ER-диаграммы: как нарисовать структуру базы данных за 5 минут. Примеры в PlantUML для новичков

ER-диаграмма (Entity-Relationship) — это «карта сокровищ» для разработчика. Она показывает, какие данные хранятся в системе, как они связаны и где спрятаны главные «сундуки» (таблицы). Сегодня разберём, как создать такую диаграмму в PlantUML, даже если вы никогда не проектировали базы данных! Это схема, которая состоит из: @startuml
' Настройка отображения
hide circle
skinparam linetype ortho
' Сущности
entity "Пользователь" as user {
*id: int
---
name: varchar
email: varchar
phone: varchar
}
entity "Заказ" as order {
*id: int
---
date: date
total: decimal
}
' Связи
user ||--o{ order : "создаёт"
@enduml Что видно: entity "Автор" as author {
*id
name
}
entity "Книга" as book {
*id
title
}
author ||--o{ book : "написал" Один автор может написать много книг. entity "Студент" as student {
*id
name
}
entity "Курс" as course {
*id
title
}
student }o--o{ course : "записан" Студент
Оглавление

ER-диаграмма (Entity-Relationship) — это «карта сокровищ» для разработчика. Она показывает, какие данные хранятся в системе, как они связаны и где спрятаны главные «сундуки» (таблицы). Сегодня разберём, как создать такую диаграмму в PlantUML, даже если вы никогда не проектировали базы данных!

Что такое ER-диаграмма?

Это схема, которая состоит из:

  • Сущностей (Entity) — объектов с данными (например, Пользователь, Заказ).
  • Атрибутов — характеристик сущностей (например, email пользователя, дата заказа).
  • Связей (Relationship) — как сущности взаимодействуют (например, Пользователь создаёт Заказ).

Базовый пример: интернет-магазин

@startuml
' Настройка отображения
hide circle
skinparam linetype ortho

' Сущности
entity "Пользователь" as user {
*id: int
---
name: varchar
email: varchar
phone: varchar
}

entity "Заказ" as order {
*id: int
---
date: date
total: decimal
}

' Связи
user ||--o{ order : "создаёт"
@enduml

Что видно:

  • Сущности Пользователь и Заказ с их атрибутами.
  • Связь «один-ко-многим» (||--o{): один пользователь может создать много заказов.
  • *id — первичный ключ (уникальный идентификатор).

Типы связей: 3 главных случая

1. Один-ко-многим (1:N)

entity "Автор" as author {
*id
name
}

entity "Книга" as book {
*id
title
}

author ||--o{ book : "написал"

Один автор может написать много книг.

-2

2. Многие-ко-многим (M:N)

entity "Студент" as student {
*id
name
}

entity "Курс" as course {
*id
title
}

student }o--o{ course : "записан"

Студент может записаться на несколько курсов, курс может иметь много студентов.

-3

Как реализовать в БД: Добавить промежуточную таблицу Студент_Курс.

3. Один-к-одному (1:1)

entity "Паспорт" as passport {
*id
number
}

entity "Гражданин" as person {
*id
name
}

passport ||--|| person : "принадлежит"

У одного гражданина один паспорт.

-4

Как нарисовать ER-диаграмму в PlantUML?

  1. Определите сущности и их атрибуты.
  2. Добавьте связи между сущностями.
  3. Используйте символы для обозначения типов связей:
    ||--o{ — один-ко-многим.
    }o--o{ — многие-ко-многим.
    ||--|| — один-к-одному.

Плюсы и минусы ER-диаграмм

Наглядность — видна вся структура БД на одном рисунке.
Простота коммуникации — даже нетехнические специалисты поймут схему.
Не заменяет SQL — это только визуализация, а не реализация.
Может усложниться — если сущностей больше 20, схема станет нечитаемой.

Заключение:
ER-диаграмма — это фундамент базы данных. Не стройте «дом» без чертежа! Начните с простых схем, добавляйте детали постепенно и не бойтесь перерисовывать.