Выбор ответа Middle Тестирование БД через SQL обновлено
Ограничения как защита данных
Вопрос
Зачем тестировщику проверять, что в базе есть ограничения (UNIQUE, NOT NULL, FOREIGN KEY, CHECK)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Без них при гонке или баге появятся дубли и сироты, проверка в коде не спасёт. Проверка «email уже занят» в коде не спасает от двух параллельных регистраций: обе проверки пройдут до записи.
Варианты ответа
- Ограничения ускоряют любые запросы: планировщик строит по ним планы и пропускает лишние проверки
- Без ограничений ORM не сгенерирует модели и API не запустится
- Это зона администратора базы, тестировщик проверяет поведение через API
- Без них при гонке или баге появятся дубли и сироты, проверка в коде не спасётправильный ответ
Разбор
Проверка «email уже занят» в коде не спасает от двух параллельных регистраций: обе проверки пройдут до записи. Защищает только UNIQUE в базе. Внешние ключи не дают ссылаться в пустоту. Ограничения не ускоряют запросы сами по себе (кроме индексов под UNIQUE и PK) и не нужны для запуска.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.