@vlog

Как бы организовали хранение ответов на форму в базе данных?

Всем доброго дня!
Делаю систему для школы. В системе есть тесты. Т.е. формы с вопросами и ответами.

Сейчас распределил по таблицам:
1. tests - таблица с данными о тесте, временном лимите итд;
2. questions - таблица с вопросами, связанная с таблицей tests;
3. answers - таблица с вариантами ответов, связанная с таблицей questions;

Сейчас вопрос в том, как хранить ответы учеников. Было две мысли:

Изначально думал создать таблицу users_answers с ответами каждого пользователя на каждый вопрос, привязанную к таблице users, questions и answers. Но что получится, если будет в тесте, предположим, 20 вопросов, в группе 20 студентов, а таких тестов 5 на весь курс. Предположим, что школа проводит 5 курсов за год получится 10000 записей в год. Насколько оптимален вариант с выборкой из 10 тыс записей для извлечения ответов конкретного студента?

Второй вариант подсмотрел в базе данных moodle. Они, как я понял, сохраняют не каждый ответ, а каждое прохождение теста. А ответы хранят в json.

Какой вариант, на Ваш взгляд, более оптимален? Как бы Вы организовали хранение ответов?
  • Вопрос задан
  • 254 просмотра
Решения вопроса 1
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
| qa (question
| st (student.
+ answer (text, fk_qa_id, fk_st_id)

используйте два внешних ключа, не забудьте прописать что при удалении вопроса или студента удалять зависимые из тех таблиц.
а те 10 тысяч записей - это вообще ни о чём. когда этих тестов будет пару сотен тысяч, студентов сотня, а ответов пару десятков миллионов - тогда можно будет думать об усложнении
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы