2009-11-26 80 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的相關門戶網站。 但是,你應該只是有不同的別名爲這兩個協會