我想用CakePHP创建一个测验生成器

时间:2011-07-30 13:08:44

标签: php model-view-controller cakephp

我有兴趣创建一个可以创建测验的应用程序,通过提供测验名称,问题和4个可能的答案(1个正确,3个不正确)。用户可以访问这些测验,某些用户类型可以编辑它们,而其他用户可以回答它们。

我应该在不同的表格中分开问题和答案吗?或者我应该只有一个问题表,其中有4个字段用于答案?

如果您之前已经这样做了,那么在创建此测验生成器时我应该考虑哪些其他因素?

1 个答案:

答案 0 :(得分:2)

我会说你们的关系应该是这样的:

User hasMany Quiz
Quiz hasMany Question
Question hasMany Answer

Quiz belongsTo User
Question belongsTo Quiz
Answer belongsTo Question

如果要求发生变化,这将允许您有超过4个答案。

可能需要考虑的事项:

如果答案是正确的,你将如何测试?布尔值,字符串比较?

如果给定的问题要求您在“是/否”或“真/假”情况下无法轻易显示的内容,该怎么办?如果您想限制多项选择,可能永远不会出现此问题,但可能会出现此问题。

你打算如何评分测验?另一个表存储有关用户测验历史的统计信息?或者是一次性使用会话?

使用全部保存

// 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'));
}

应该是您所需要的一切〜