Документация / DBML
Заметки и оформление
Конструкции для диаграмм и документации. У них нет SQL-эквивалента: они помогают описывать и наглядно показывать схему.
Заметки
Заметки описывают элементы DBML. Есть две формы записи:
Table users {
id int [pk]
name varchar
Note: 'Заметка к таблице'
// или
Note {
'Заметка к таблице'
}
}
Значение заметки — строка; для длинных текстов используйте многострочные строки.
Заметка проекта
Описывает всю схему или базу данных:
Project DBML {
Note: '''
# DBML - Database Markup Language
DBML — простой и читаемый язык для описания структуры баз данных.
'''
}
Заметка таблицы
Table users {
id int [pk]
name varchar
Note: 'Хранит данные пользователей'
}
Заметка столбца
Показывается при наведении на столбец в диаграмме:
Table orders {
status varchar [
note: '''
💸 1 = в обработке,
✔️ 2 = отправлен,
❌ 3 = отменён,
😔 4 = возвращён
'''
]
}
Заметка индекса
Table orders {
created_at timestamp
indexes {
created_at [name: 'created_at_index', note: 'Дата']
}
}
Пользовательские свойства
Пользовательские свойства — произвольные пары «ключ — значение» для метаданных: классификация данных,
SLA, владелец и т. п. Поддерживаются у таблиц, столбцов, групп таблиц и заметок на холсте.
Значение — строка (owner: "data-team") или цвет (brand_color: #3498DB).
Свойства в настройках элемента
Table users [owner: "data-team", sla_hours: "24", pii: "true"] {
id int [pk, masking: "partial"]
email varchar [classification: "confidential"]
}
TableGroup e_commerce [team: "growth"] {
merchants
countries
}
Note reminder [author: "docs"] {
'Не забыть проверить схему'
}
Ключ без значения или повторяющийся ключ — ошибка.
Блок Metadata
Свойства можно объявить отдельно блоком Metadata, указав вид и имя элемента:
Table users {
id int [pk]
name varchar
}
Metadata Table users {
owner: 'scott'
note: 'scott — владелец'
}
Metadata Column users.id {
pii: 'true'
masking: 'partial'
}
Приоритет свойств
Если ключ задан в нескольких местах, приоритет растёт в таком порядке:
- настройки в самом элементе;
- блоки
Metadataв импортированных файлах (более поздний импорт важнее); - блоки
Metadataв текущем файле (более поздний блок важнее).
Заметки на холсте
Заметки на холсте (sticky notes) — напоминания и пояснения прямо на диаграмме:
Note single_line_note {
'Однострочная заметка'
}
Note multiple_lines_note {
'''
Многострочная заметка.
Текст может занимать несколько строк.
'''
}
Группы таблиц (TableGroup)
TableGroup объединяет связанные таблицы:
TableGroup tablegroup_name {
table1
table2
table3
}
// пример
TableGroup e_commerce1 {
merchants
countries
}
Заметку к группе можно задать настройкой или внутри блока:
TableGroup e_commerce [note: 'Таблицы электронной коммерции'] {
merchants
countries
// или
Note: 'Таблицы электронной коммерции'
}
Настройки группы:
note: 'строка'— заметка;color: <цвет>— цвет фона группы.
Представления диаграммы (DiagramView)
DiagramView описывает несколько представлений диаграммы, каждое со своим набором элементов:
Tables, Notes, TableGroups, Schemas. { * } — все элементы категории.
// все элементы
DiagramView full_view {
Tables { * }
Notes { * }
TableGroups { * }
Schemas { * }
}
// пустое представление
DiagramView empty_view {}
// выбранные таблицы
DiagramView sales_view {
Tables {
users
orders
products
}
}
Цвета
Цвет задаётся шестнадцатеричным кодом: #rgb или #rrggbb.
Цвет заголовка таблицы:
Table users [headercolor: #3498DB] {
id integer [primary key]
username varchar(255) [not null, unique]
}
Цвет линии связи:
Ref: products.merchant_id > merchants.id [color: #79AD51]
Цвет группы таблиц:
TableGroup e_commerce [color: #3498DB] {
merchants
countries
}
Цвет заметки на холсте (none — без фона):
Note reminder [color: #F4D03F] {
'Напоминание'
}
Note no_color [color: none] {
'Заметка без фона'
}
Неактивные связи
Настройка inactive помечает связь как неактивную — на диаграмме она рисуется пунктиром:
Ref: posts.user_id > users.id [inactive]
Ref: posts.user_id > users.id [delete: cascade, inactive]
Похожие инструменты
Обновлено: 27 сентября 2026 г.
