我正在尝试为多选琐事游戏确定最有效的数据库架构。我在电子表格中提供了问题和答案,其中包含以下列:'question_id','level','question','wrong_ans1','wrong_ans2','wrong_ans3','correct_ans'。
我是否应该使用(id,question,level,is_active)和'question_choices'等列来将数据分成多个表'questions' strong>列有(id,choice,is_correct,)?
我有一个名为'user_ans'的表格,因此我可以跟踪用户所播放的问题以及他们给出的答案。
非常感谢任何帮助!
答案 0 :(得分:2)
我要么:
在后一种情况下:
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
过度思考这一点,如果你有很多问题有相同的答案但是不同的问题对于不同的问题是正确的,那么你可以将答案捆绑成集(“蓝色”,“绿色“,”红色“)并将问题链接到集合 - 在这种情况下,您必须在问题级别指出正确的答案。
答案 1 :(得分:0)
我会这样做:
问题模型
Question
attr_accessible :question, :level
has_many wrong_answers
has_one correct_answer
Wrong_answer
attr_accessible :answer, :question_id
belongs_to :question
Correct_answer
attr_accessible :answer, :question_id
belongs_to :question