Схема взаимодействия сущностей теста

TestFile 

Тест.
Сущность содержит в себе все настройки. Данная сущность так же является наследником сущности файла. Это позволяет применять к ней операции, доступные другим файлам: перемещать между папками, прикреплять к мероприятию.

Поля сущности:

  • id — уникальный идентификатор теста;
  • userId — ID пользователя, которому данный тест принадлежит;
  • name — название теста;
  • assessType — тип оценки результатов. Может быть:
    - pointsSum — по количеству баллов;
    - answerCount — по количеству правильных ответов;
  • minPoints — минимальное количество баллов, необходимое для успешного прохождения теста.
    Не обязательное поле. Значение по умолчанию: 0;
  • minAnswers — минимальное количество правильных ответов, необходимое для успешного прохождения теста.
    Необязательное поле. Значение по умолчанию: 0;
  • duration — заявленная длительность теста в секундах. Используется для тестирования в режиме реального времени.
    Необязательное поле. Значение по умолчанию: 0;
  • questions — список вопросов теста.

TestQuestion

Вопрос теста.
Поля сущности:

  • id — ID записи в БД. Уникальный идентификатор сущности;
  • questionData — текст вопроса. Обязательное поле;
  • questionImage —  изображение. Если в вопросе используется изображение, в этом поле находится массив данных для изображения:
          - id — ID файла, используемого для изображения;
          - url — ссылка на скачивание изображения;
          - thumbnails — массив со ссылками на миниатюры изображения;
  • allowCustomAnswer — свободный ответ. Флаг определяющие наличие или отсутствие в вопросе свободного ответа. Значение по умолчанию: false;
  • maxPointsAnswers — максимальное возможное количество ответов с баллами, доступное в данном вопросе.
    Имеет смысл только в случае, если возможно выбрать одновременно несколько ответов. Значение по умолчанию: 1;
  • order — порядковый номер вопроса в списке;
  • answers — список ответов на данный вопрос.

TestQuestionAnswer

Ответ на вопрос теста.
Поля сущности:

  • id — уникальный идентификатор ответа;
  • answerData — текст ответа на вопрос;
  • answerImage — Если ответом на вопрос является изображение, то в этом поле находится массив с данными изображения:
          - id — ID файла, используемого для изображения;
          - url — ссылка на скачивание изображения;
          - thumbnails — массив со ссылками на миниатюры изображения;
  • isCorrect — флаг, отвечающий за правильность ответа. Не обязательное поле. Значение по умолчанию: false;
  • points — количество баллов, получаемое за выбор данного ответа. Необязательное поле. По умолчанию - 0;
  • order — порядковый номер ответа в списке.

TestSession

Результаты проведенного теста или голосования.
Всякий раз, когда запускается тест, создается сущность TestSession, где формируются данные об ответах.
Каждая TestSession связана с мероприятием — EventSession — в котором была проведена.

Поля сущности:

  • id — уникальный идентификатор проведения теста/голосования;
  • eventSessionId — уникальный идентификатор вебинара (eventSession), в котором проводился тест;
  • startTime — время старта TestSession.
    Формат: YYYY-MM-DD HH:MM;SS;
  • endTime — время завершения TestSession.
    Формат: YYYY-MM-DD HH:MM;SS;
  • isComplexResultsShared — флаг, отвечающий за то, разрешено ли участникам тестирования получить сводные результаты теста;
  • isIndividualResultsShared — флаг, отвечающий за то, разрешено ли участникам тестирования получить индивидуальные результаты теста. Используется при тестировании в рамках мероприятия.

UserTestPassing

Результаты прохождения теста участника.

Поля сущности:

  • id — уникальный идентификатор результата;
  • questionCount — количество вопросов теста;
  • minPointsToPass — минимальное количество баллов, необходимое участнику для успешного прохождения тестирования;
  • minCorrectAnswersToPass — минимальное количество правильных ответов, необходимое участнику для успешного прохождения тестирования;
  • startTime — дата/время начала прохождения тестирования;
  • endTime — дата/время окончания прохождения тестирования;
  • isTestPassed — итог теста. Флаг показывает набрал ли участник нужное количество баллов/правильных ответов;
  • answerCount — количество ответов, данных участником;
  • pointsSum — сумма баллов, набранная участником;
  • correctAnswerCount — количество вопросов, на которые был дан правильный ответ. Правильный ответ на вопрос подразумевает, что пользователь выбрал все ответы, которые отмечены как правильные в вопросе;
  • testSessionId — ID TestSession, в рамках которой участник проходил тестирование;
  • userId — ID участника, который проходил тестирование;
  • eventSessionId — ID мероприятия (EventSession), в рамках которого было проведено тестирование.

UserTestQuestionAnswer

Один ответ участника на один вопрос теста.
Параметры:

  • id — уникальный идентификатор ответа участника;
  • questionData — текст вопроса;
  • questionImage — изображение вопроса. Если вопрос был с изображением, то в этом поле находиться массив с данными изображения:
          - id — ID файла, используемого для изображения;
          - url — ссылка на скачивание изображения;
          - thumbnails — массив со ссылками на миниатюры изображения;
  • answerData — текст ответа;
  • answerImage  — изображение ответа. Если в качестве ответа было выбрано изображение, то в этом поле находиться массив с данными изображения:
          - id — ID файла, используемого для изображения;
          - url — ссылка на скачивание изображения;
          - thumbnails — массив со ссылками на миниатюры изображения;
  • isCorrect — итог теста. Флаг показывает набрал ли участник нужное количество баллов/правильных ответов;
  • answerPoints — количество баллов за ответ;
  • isCustomAnswerSubmitted — флаг, показывающий, что ответ, данный участником является свободным, а не выбранным из предложенных;
  • isCustomAnswerAssessed — флаг, показывающий, что свободный ответ был оценен ведущим и ответу проставлены значения isCorrect и/или answerPoints;
  • userId — ID участника, который дал ответ;
  • userTestPassingId — ID сущности UserTestPassing, в рамках которой пользователем был дан ответ.


Вы нашли ответ?