Как бы организовали хранение ответов на форму в базе данных?
Всем доброго дня!
Делаю систему для школы. В системе есть тесты. Т.е. формы с вопросами и ответами.
Сейчас распределил по таблицам:
1. tests - таблица с данными о тесте, временном лимите итд;
2. questions - таблица с вопросами, связанная с таблицей tests;
3. answers - таблица с вариантами ответов, связанная с таблицей questions;
Сейчас вопрос в том, как хранить ответы учеников. Было две мысли:
Изначально думал создать таблицу users_answers с ответами каждого пользователя на каждый вопрос, привязанную к таблице users, questions и answers. Но что получится, если будет в тесте, предположим, 20 вопросов, в группе 20 студентов, а таких тестов 5 на весь курс. Предположим, что школа проводит 5 курсов за год получится 10000 записей в год. Насколько оптимален вариант с выборкой из 10 тыс записей для извлечения ответов конкретного студента?
Второй вариант подсмотрел в базе данных moodle. Они, как я понял, сохраняют не каждый ответ, а каждое прохождение теста. А ответы хранят в json.
Какой вариант, на Ваш взгляд, более оптимален? Как бы Вы организовали хранение ответов?
Akina, свободные есть, просто не стал упоминать, дабы не усложнять вопрос. Мне просто понимание масштаба было нужно, Вы мне дали это понять, спасибо! :)
используйте два внешних ключа, не забудьте прописать что при удалении вопроса или студента удалять зависимые из тех таблиц.
а те 10 тысяч записей - это вообще ни о чём. когда этих тестов будет пару сотен тысяч, студентов сотня, а ответов пару десятков миллионов - тогда можно будет думать об усложнении