Итак, у меня есть стол для катания и стол для кандидатов.В каждой гонке может участвовать до 12 кандидатов, и каждый кандидат имеет свой индивидуальный результат.Кроме того, у меня есть таблица разделов опроса, которая похожа на таблицу результатов, за исключением того, что несколько сотен отделений обычно используют один и тот же набор кандидатов.
У меня проблемы с созданием дизайна базы данных.В настоящее время у меня есть 2 столбца для каждого кандидата, один из которых хранит идентификатор в таблице кандидатов, а другой - результат.Таблица результатов выглядит следующим образом:
(riding_id INTEGER, name TEXT, cand0_id INTEGER, cand0_result INTEGER ... cand11_id INTEGER, cand11_result INTEGER)
Таблица распределения опросов похожа.
Таблица кандидатов выглядит следующим образом:
(cand_id INTEGER, riding_id INTEGER, name TEXT)
Если список участников или опросимеет менее 12 кандидатов, тогда этот набор столбцов пуст.Однако с этим неудобно работать, поскольку требуются массивные запросы для получения каждого нужного мне столбца и гигантское соединение в таблице кандидатов.
Если бы у меня были только поездки, я мог бы просто использовать идентификатор поездки втаблица кандидатов для отношения, но есть также несколько сотен разделов опроса, с которыми также связан кандидат, что означает, что я снова столкнулся с проблемой «тонны столбцов», если я хочу сделать то же самое с подразделениями опроса.
Есть ли разумный способ выложить мои данные?