ruby-on-rails – 多选Trivia游戏的数据库架构

我正在尝试为多选琐事游戏确定最有效的数据库架构.我在电子表格中提供了问题和答案,其中列有’question_id’,’level’,’question’,’wrong_ans1′,’wrong_ans2′,’wrong_ans3′,’correct_ans’.

我应该使用诸如(id,question,level,is_active)和’question_choices’等列来将数据分成多个表的“问题”,并使用诸如(id,choice,is_correct)之类的列?

我有一个名为’user_ans’的表格,因此我可以跟踪用户所播放的问题以及他们给出的答案.

任何帮助将不胜感激!

最佳答案 我要么:

>使用布尔值将答案保存在单个表中,以指示正确的答案,就像您描述的那样.
要么 …
>将答案保存在单个表中,并使用问题模型上的属性来标识正确答案的ID.这确保只有一个答案是正确的.

在后一种情况下:

Question
  attr_accessible :question, :level, correct_answer_id
  has_many :answers     , :dependent => :destroy
  has_many :user_answers, :through   => :answers

Answer
  attr_accessible :answer, :question_id
  belongs_to :question
  has_many   :user_answers, :dependent => :destroy

User_Answer
  attr_accessible :user_id, :answer_id
  belongs_to :user
  belongs_to :answer

过度思考这一点,如果你有很多问题具有相同的答案但是不同的问题对于不同的问题是正确的,那么你可以将答案捆绑成集(“蓝色”,“绿色”,“红色“)并将问题链接到集合 – 在这种情况下,您肯定必须在问题级别指出正确的答案.

点赞