Ограничения целостности
Проверка в приложении не защищает от конкурирующих запросов и другого клиента БД.
Проверено Изменено
Плохо
if (!emailExists(email)) {
insertUser(email);
}
Хорошо
CREATE UNIQUE INDEX users_email_unique
ON users (email);
Почему это важно
Два запроса могут одновременно пройти проверку отсутствия записи.
Когда применять
Способ нормализации email и состав уникальности, включая tenant, определяет продукт.
Кто что делает
Человек
Определяет инварианты данных и допустимые исключения.
AI-агент
Готовит схему или миграцию, проверяет граничные значения и совместимость с текущими запросами.
Контроль результата:
- Попробуйте два одновременных создания одной сущности.
Как проверить у себя
- Попробуйте два одновременных создания одной сущности.
Первоисточники
История изменений на GitHubДата проверки отражает содержательную сверку. Синхронизация сайта не обновляет её автоматически.