Вопрос №55363 от пользователя Evgeny Tevelevich в уроке «Производительность», курс «Основы реляционных баз данных»

Evgeny Tevelevich

В этом задании не корректный тест. Он успешно проходит, в независимости от того, была ли использована транзакция или нет.

Вариант решения: Добавить еще один тест, в котором предварительно будет добавлена одна запись в таблицу friendship.

INSERT INTO friendship (user1_id, user2_id) VALUES (2, 1);

и поле user1_id сделано уникальным.

Тест будет пройден если новых записей не появится.

5 0

Maksim Litvinov

Евгений, добрый день! К сожалению, в этом задании не получится проверить, что использовалась именно транзакция. Поле user1_id не может быть уникальным, так как у одного пользователя может быть множество друзей. Если поле будет уникальным, то не получится добавить более одного друга для каждого пользователя

0

Evgeny Tevelevich

Привет! 1) Почему то обсуждение оказалось не под тем уроком (должно быть 24.Транзакционность ), можно перенести? 2) почему я не вижу это обсуждение в своем профиле, раздел вопросы?

3)По теме. Я предлагаю сделать уникальность поля user1_id, только для одного из тестов, как раз для того, чтобы часть запросов из транзакции не отработала, и транзакция отменилась. По моему в этом задании принципиально проверить работу транзакций.

0

Maksim Litvinov

Приветствую, Евгений!

  1. Да, обсуждение оказалось не под тем уроком, но я понял, к чему оно относится. Перенести топик не получится, можно только удалить его и создать новый в правильном уроке.
  2. Посмотрите теперь, его должно быть видно.
  3. Тестировать ведь нужно в условиях, максимально приближенных к реальности. А создавать специально для тестов таблицу - это значит подогнать данные под тесты. Ведь в реальности поле user1_id в таблице не может быть уникальным. Использование транзакции в этом упражнении остается на совести студента. Кроме того, после выполнения задания можно сравнить свое решение с решением учителя
0

Evgeny Tevelevich

В том то и дело, сейчас так и есть, тест уже зависит от данных. Просто в дополнительном тесте можно смоделировать ситуацию когда транзакция не пройдет немного модифицировав таблицу.

0

Maksim Litvinov

Евгений, поставил тикет на эту задачу. Посмотрю, что можно сделать, чтобы доработать тесты в этом испытании

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
25 мая 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
25 мая 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
25 мая 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
25 мая 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
25 мая 5 месяцев