[Table Relations - Exercise, 02. One-To-Many Relationship] - Проблем с тестoвете в Judge (83/100)
Според условието на задачата, първо трябва да създадем таблиците без да дефинираме Primary и Foreign keys (1), да създадем примерните записи в двете таблици (2) и накрая да довършим сетъпа на таблиците като дефинираме очакваните Primary и Foreign keys (3).
Проблемът е, че ако изпълним задачите в тази последователност (1-2-3), теста в Judge, който проверява коректността на данните фейлва, защото те не са сортирани според очакваното.
Това е заявката от теста:
SELECT
man.manufacturer_id,
man.name,
DATE(man.established_on),
m.model_id,
m.name
FROM
manufacturers man
INNER JOIN
models m ON man.manufacturer_id = m.manufacturer_id
ORDER BY man.manufacturer_id;
В очаквания резултат, тази заявка изкарава 6-те записа сортирани по manufacturer_id и по model_id, но това се случва, само ако записите се добавят в таблиците след като и двете таблици са напълно конфигурирани, т.е. реда на изпълнение на частите на тази задача трябва да е 1-3-2.
Забелязах, че има и други колеги с 83 точки на тази задача, и затова реших да постна тази информация тук.
Към оргнизаторите на курса - заявката за проверка трябва да включва (и) сортировка по model_id, за да се избегне този проблем:
...
ORDER BY man.manufacturer_id, m.model_id;
Поне към този момент все още не е оправен проблема.
Репортнал съм го по каналният ред.
Не знам кое ти прави проблем, При мен работи ето така:
1. Дефинирам таблиците и първичните ключове.
2. Попълвам данните.
3 Правя FOREIGN KEY за таблица models
Имаше друг проблем че теста очакваше разменени данни в моделите вместо 101 очакваше 102 и обратно. Но после си се самооправи :) за което благодаря на администраторите. Доста учудено гледах и се питах защо прави точно така ;)
Искаш ли кода?
По условие, Primary key-овете също трябва да се дефинират след като добавим данните в таблиците, но - както съм написал по-горе, ако си събмитнем решението така, то не минава в Judge заради разместване на последователността на записите (проблемът, който и ти си видял в началото).