Целый день бьюсь с базой данных Testlink, пытаюсь найти путь как связать test case и его версии. Так как внешних ключей, описания базы и моделей нет, чувствую себя, как в лабиринте — где-то есть выход и мне его надо найти. Но не получается. Есть таблица «A», есть «B», есть «A_B», в «A_B» есть «A_id» и «B_id». Вроде все ясно — две таблицы и таблица связей. Ан нет, не работает, не связываются данные.
Очень хочется анализатор БД, который взял бы лог запросов SQL и построил бы по нему связи между таблицами. Самому написать времени нет, да и, может, готовый уже есть. Может кто знает? А то я за целый день проблему так и не победил, по коду смотреть — тоже тот ещё квест.
Добавлено 18 декабря 22:10: перед уходом домой я разобрался, что всё связано через другую таблицу.
Для конкретики: есть таблицы tcversions, testplan_tcversions и testplans.
В testplan_tcversions есть поля testversion_id и testplan_id. Поле testversion_id указывает в таблицу tcversions, но поле testplan_id не указывает на testplans. Оно указывает в таблицу nodes_hierarchy, ту да же указывает id у tcversions, а связь между ними осуществляется через дерево внутри nodes_hierarchy.
Кажется, так всё работает. Это мне ещё предстоит выяснить в понедельник, а сейчас я домой пойду.