Базы данных

Идентификаторы, связи, данные и безопасные изменения.

Правила 11

Базы данныхЗависит от задачи

Идентификаторы: UUID и bigint

UUID удобен для независимого создания записей и публичных идентификаторов. Имя поля и его тип — разные решения.

Проверено 9 ноября 2026 г.
Базы данныхРекомендуется

Имена таблиц и полей

Из имени поля должно быть понятно, какую связь оно хранит.

Проверено 9 ноября 2026 г.
Базы данныхОбязательно

Ограничения целостности

Проверка в приложении не защищает от конкурирующих запросов и другого клиента БД.

Проверено 9 ноября 2026 г.
Базы данныхРекомендуется

Внешние ключи

Внешний ключ не позволяет хранить ссылку на несуществующую запись.

Проверено 9 ноября 2026 г.
Базы данныхОбязательно

Транзакции

Связанные операции должны завершиться вместе или вместе отмениться.

Проверено 9 ноября 2026 г.
Базы данныхОбязательно

Миграции схемы

Выпускайте несовместимые изменения в несколько совместимых этапов.

Проверено 9 ноября 2026 г.
Базы данныхРекомендуется

Индексы PostgreSQL

Индекс ускоряет выбранное чтение и увеличивает стоимость записи.

Проверено 9 ноября 2026 г.
Базы данныхРекомендуется

Дата и время: timestamptz

Момент времени и местное расписание — разные данные. PostgreSQL `timestamptz` хранит момент, но не исходное название часового пояса.

Проверено 9 ноября 2026 г.
Базы данныхЗависит от задачи

JSONB и реляционные поля

Поля, участвующие в доступе, связях и частом поиске, нуждаются в явной модели.

Проверено 9 ноября 2026 г.
Базы данныхЗависит от задачи

История и удаление данных

Мягкое удаление, история версий и аудит решают разные задачи.

Проверено 9 ноября 2026 г.
Базы данныхРекомендуется

Деньги: bigint, numeric и валюта

Сумма хранится вместе с валютой и единицей измерения. Для расчётов используйте целые минимальные единицы или точный десятичный тип.

Проверено 9 ноября 2026 г.

Недавно проверено

Идентификаторы: UUID и bigintИмена таблиц и полейОграничения целостностиВнешние ключи