Способ хранения ответов студентов на задания - MySQL
Формулировка задачи:
Разрабатывается тренажер по "дисциплине управление" данными. Столкнулся с проблемой хранения ответов студентов. В дальнейшем для просмотра результатов нужно студенту предоставлять краткую информацию, а преподавателю - подробную по каждому заданию. Имеются таблицы "Эталон" со структурой: "ID_qw", "тема", "Задание", "правильный ответ"; таблица "студенты": "ФИО", "Номер группы", "ID_st", "логин", "пароль". А вот с таблицей ответов у меня проблема.. хотел сделать такого вида "Дата выполнения", "номер задания" (блок из N заданий), "ID_QW" - номер вопроса как эталоне, "правильный ответ", и дальше "ответ студента 1", 2, 3 и так далее до последнего студента. Однако, получается весьма громадная таблица. Даже если 100 студентов и 20 блоков по 10 заданий.. Как можно упростить таблицы? Если бы не подробный отчет по каждому заданию - у меня даже вопросов бы не возникало.. а тут..
Решение задачи: «Способ хранения ответов студентов на задания»
textual
Листинг программы
SELECT `logs`.`id`, `logs`.`date`, `logs`. `ID_QW`, `logs`.`ST_id`, `logs`.`ST_answer` FROM `logs`,`ref_task` WHERE `logs`.`ST_answer` = `ref_task`.`Answer`
Объяснение кода листинга программы
В данном коде выполняется запрос к базе данных, который предназначен для выбора определенных данных из двух таблиц: logs
и ref_task
. Список действий, которые выполняются в этом коде, можно описать следующим образом:
- SELECT - выбор данных из таблицы.
logs
.id
,logs
.date
,logs
.ID_QW
,logs
.ST_id
,logs
.ST_answer
- перечисление столбцов, которые необходимо выбрать из таблицыlogs
.- FROM
logs
,ref_task
- указание таблиц, из которых необходимо выбрать данные. - WHERE
logs
.ST_answer
=ref_task
.Answer
- условие, которое ограничивает выборку данных из таблицыlogs
иref_task
таким образом, чтобы выбирались только те строки, в которых значение столбцаST_answer
в таблицеlogs
совпадает с значением столбцаAnswer
в таблицеref_task
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д