Я хотел бы создать генератор викторины, используя CakePHP - PullRequest
0 голосов
/ 30 июля 2011

Я заинтересован в создании приложения, которое может создавать тесты, предоставляя название теста, вопросы и 4 возможных ответа (1 правильный, 3 неправильных).Эти тесты будут доступны для пользователя, и некоторые типы пользователей могут редактировать их, в то время как другие могут отвечать на них.

Стоит ли разделять вопросы и ответы в разных таблицах?Или у меня должна быть просто таблица вопросов с 4 полями для ответов?

Если вы делали это раньше, какие еще соображения я должен принять при создании этого генератора тестов?

1 Ответ

2 голосов
/ 30 июля 2011

Я бы сказал, что ваши отношения должны выглядеть примерно так:

User hasMany Quiz
Quiz hasMany Question
Question hasMany Answer

Quiz belongsTo User
Question belongsTo Quiz
Answer belongsTo Question

Это позволит вам получить более 4 ответов, если требования когда-либо изменятся.

Вещирассмотреть, возможно:

Как вы собираетесь проверить, если ответ правильный?Булево, сравнение строк?

Что если заданный вопрос запрашивает что-то, что вы не могли бы легко показать в ситуации «да / нет» или «правда / ложь»?Эта проблема может никогда не возникнуть, если вы хотите ограничить множественный выбор, но она может возникнуть.

Как вы оцениваете тест?Еще одна таблица для хранения статистики об истории пользователей?Или это одноразовое использование сеансов?

использование save all

// view
echo $this->Form->create('Question', array('action'=>'add'));
echo $this->Form->input('Question.name', array('label'=>'Question name'));
echo $this->Form->input('Answer.0.title', array('label'=>'Answer'));
// etc

// add method
if (!empty($this->data)) {
    $this->Question->saveAll($this->data, array('validate'=>'first'));
}

должно быть всем, что вам нужно ~

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...