ruby-on-rails - 多项选择问答游戏的数据库模式

标签 ruby-on-rails database ruby-on-rails-3 database-design database-schema

我正在尝试为多项选择问答游戏确定最有效的数据库模式。我在包含列的电子表格中有问题和答案,'question_id'、'level'、'question'、'wrong_ans1'、'wrong_ans2'、'wrong_ans3'、'correct_ans'。

我是否应该将数据分成多个表 'questions',其中包含诸如 (id, question, level, is_active)'question_choices' 具有诸如 (id, choice, is_correct,)?

之类的列

我有一个名为 'user_ans' 的表,因此我可以跟踪用户提出的问题和他们给出的答案。

如有任何帮助,我们将不胜感激!

最佳答案

我会:

  1. 按照您的描述,将答案保存在一个带有 bool 值的表格中以指示正确答案。 或者……
  2. 将答案保存在一个表中,并使用问题模型的属性来标识正确答案的 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

有点过度思考,如果你有很多问题有相同的答案集,但不同的答案对不同的问题是正确的,那么你可以将答案捆绑成集(“蓝色”,“绿色” ", "Red") 并将问题链接到集合——在这种情况下,您当然必须在问题级别指明正确答案。

关于ruby-on-rails - 多项选择问答游戏的数据库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17028112/

相关文章:

java - 数据库值分离

database - 如何对 300,000 个文本文件建立索引以进行搜索?

ruby-on-rails - 用于对象路由的 rails sha1 哈希?

ruby-on-rails - form_for in dev 它是如何工作的?

mysql - mysql db 用户的用户权限

ruby-on-rails - 通过 rails 中的链接将文本附加到当前 URL

Ruby:生产环境中的 GC::Profiler.enable 会导致性能问题吗?

ruby-on-rails - 在 has_many View 表中显示名称而不是 ID

ruby-on-rails - 可以将哈希存储在 cookie 中吗?

ruby-on-rails - 使用 Form Object 时应该如何处理编辑和更新操作?