ОбязательноSQL

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

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

Проверено Изменено

Плохо

if (!emailExists(email)) {
  insertUser(email);
}

Хорошо

CREATE UNIQUE INDEX users_email_unique
  ON users (email);

Почему это важно

Два запроса могут одновременно пройти проверку отсутствия записи.

Когда применять

Способ нормализации email и состав уникальности, включая tenant, определяет продукт.

Кто что делает

Человек

Определяет инварианты данных и допустимые исключения.

AI-агент

Готовит схему или миграцию, проверяет граничные значения и совместимость с текущими запросами.

Контроль результата:

  • Попробуйте два одновременных создания одной сущности.

Как проверить у себя

  • Попробуйте два одновременных создания одной сущности.
ПервоисточникиИстория изменений на GitHub

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