2009-11-26 100 views
1

我有以下方案:我的网站是一个琐事游戏,所以每个问题“hasMany”答案,但是一个问题也是“hasOne”正确答案也由Answer模型表示。 我还没有测试这个,但我的程序员的本能告诉我,检索的数组将会是多余的,它不会将正确的答案与其余的分开。将模型关联两次,CakePHP

我的问题是,我如何在模型和数据库中表示这种情况,是否有更好的方式来表示这种关系?

回答

1

那么,我可以想出两种方法来做到这一点。

  1. 一个问题的hasMany答案,而属于关联一个正确答案的问题(已在问题的正确答案answer_id,所以它看起来像Question(id, answer_id)Answer(id, question_id)

  2. 对一个标志答案反映它是否是正确的答案。

我想选择哪一个更多的是个人意见,但我可能会去数2,即使1更正确了关系的思想,但它减少了冗余,你仍然可以搜索因为它在答案中。

当然,如果一个问题可以有多个正确的答案,那么选项1是不可能的。

0

另一条路线是创建映射到同一个表的2个模型。答案中有一个标志,表示这是正确的答案。

既然你不会切换哪个答案是正确的,那么在创建时将正确性映射到一个标志是很好的,并且会让你有多个正确的答案。使用加权系统,您甚至可以评估答案的正确性。

对于两个独立的模型,请确保在关系或模型本身上设置条件,以便CorrectAnswer模型仅查找answer.correct = true字段集的答案。然后可以有一个通用的答案模型,没有这样的条件。在Question模型中完成,您甚至可以纯粹使用关联标志来获取这两种类型。

0

试着问在cakeqs.org它是CakePHP的相关门户网站。 但是,你应该只是有不同的别名为这两个协会