Отказ электричества на стороне студента
Ваш тест, вероятно, переходит со страницы на страницу, где каждая страница отправляет данные на сервер.Вам следует просто сохранить опубликованные данные на некотором постоянном носителе (лучше всего использовать базу данных).
Идентификация пользователей после перезапуска
Пользователи анонимны
Если вашпользователям не нужно входить в систему, прежде чем принимать участие в опросе, вы должны как-то их идентифицировать.Дайте им постоянный cookie-файл с некоторым идентификатором, который вы используете в своей БД для хранения их ответов, так что если питание отключится и когда они вернутся, вы все равно сможете узнать, кто они, потому что cookie-файл будет отправлен вам автоматически.Проблема здесь, конечно, в том, что происходит, когда несколько студентов используют один и тот же компьютер.Тебе тоже придется это решить.Самый простой способ - позволить своим пользователям войти в приложение викторины.
Пользователи вошли в систему
Это простой случай, когда вы просто сохраняете их ответы вместе с ихЯ БЫ.Это работает аналогично первому примеру, но с той разницей, что вы точно знаете, кто они (знаете их имя и т. Д.)
Что если у вас есть несколько тестов?
Если это так, вы, вероятно, не хотите создавать отдельную таблицу для каждой из них, в которой будут храниться ответы. Лучший способ в этом случае будет иметь одну схему таблицы:
UserID, QuizID, CurrentStep, Answers
-------------------------------------
Это дастВы получаете всю информацию о том, где пользователи участвуют в опросе (чтобы они могли продолжить работу после сбоя питания), и сохраняете ответы в виде данных XML.Текущий шаг может помочь вам, когда тест является пошаговым процессом, и пользователи возвращаются к существующему незавершенному тесту.Это поможет вам отобразить первый незавершенный шаг к ним, чтобы они могли легко продолжить с того места, где они оставили.
Это даст вам достаточно возможностей для хранения нескольких разных тестов в одной таблице.Данные XML могут предоставить простые прямые или разветвленные ответы.Зависит от того, на что похожи ваши тесты.
Какую БД вы должны выбрать?
Вы можете выбрать схему базы данных, такую как MySql, Oracle или SQL Server, или вы можете использовать документно-ориентированную базу данных , котораяможет быть гораздо больше подходит для ваших нужд.В зависимости от используемой платформы вы найдете подходящую базу данных типа документа.
Оценка основана на пуле вопросов
Поскольку вы говорите, что у вас есть пул вопросов, и я подозреваю, что схема БД похожаэто должно поддержать бизнес-процесс.У вас есть эти таблицы:
Subject
- эта таблица необходима, если у вас есть централизованное приложение для различных предметов обучения Group
- есть определенный вопросгруппируется и относится к предмету таблице;группы могут быть семестром 1, семестром 2 или аналогичными;Эти группы позволят выбрать набор вопросов для оценки, которые относятся к какому-либо предмету и являются частью группы, которая должна оцениваться Question
- это фактический пул вопросов;С каждым вопросом связаны данные в таблице Группа ;эта таблица может содержать дополнительные метаданные, которые будут содержать информацию об уровне вопроса, которая может учитываться при подсчете итоговых вопросов / ответов Student
- ваши учащиеся, скорее всего, должны войти в это приложение, и, как указали несколько отвечающих, здесь этотакже рекомендуется подход, особенно потому, что я подозреваю, что студенты будут использовать рабочие места общего учреждения, что означает, что несколько студентов могут использовать один и тот же компьютер Assessment
- это одна из центральных таблиц, которая содержит данные о студентах, проходящих оценкутестовое задание;он связан с таблицей Student , имеет метку времени начала оценки и т. д. AssessmentQuestion
- реляционная таблица, которая используется для записи ответов ученика;Когда оценка начинается, создается X записей в этой таблице, которые фактически указывают на конкретные вопросы, которые были выбраны для учащегося из соответствующего пула вопросов;в нем как минимум три столбца: StudentID, QuestionID и answer (обнуляемый);дополнительные столбцы необходимы, если учащимся разрешено задать ответ не знаю или аналогичный;в этом случае будет добавлен дополнительный столбец AnswerState, который будет относиться к таблице поиска с предопределенными состояниями.
Когда учащийся начинает оценку и в то же время происходит сбой питания, вы всегда можете узнать, какойвопросы, на которые ученик уже ответил, а на какие еще нужно ответить.
У вас также могут быть дополнительные таблицы с правильными ответами, чтобы оценка была автоматизирована и давала результаты сразу после того, как все вопросы оценки были завершены.
Алгоритмвыбор вопросов может быть осуществлен таким образом, чтобы вопросы были равномерно распределены в долгосрочной перспективе.
Но вы могли бы сделать систему еще более сложной, добавив еще больше административных данных, которые бы автоматизировали как можно больше задач и делали ихнастраивается так, что это будет более широко полезным.