rails 3应用程序中的Mysql数据库结构替代方案



在一个使用mysql数据库的rails 3应用程序中,我正在创建一个学术测试。以下是测试特性。

    多个选择
  • 仅由整数组成的93个问题与选定答案相关联
  • 学生将多次重新参加考试并更改答案
  • 在重考之前的答案将被重新加载到页面,更改,然后再次存储。
  • 每页有10个问题
  • 当每个页面完成时,应保存响应。这将提供测试的便利,而不必一次完成。
  • 除了"下一页"按钮外,还将有一个"上一页"按钮

我有几个问题:

我应该有一个数据库记录,每个答案将存储student_id, question_id和答案?还是……每个学生都有一个数据库记录,其中包含student_id和每个问题答案的所有字段?

问题将不是静态的。根据我们的结果,我们计划修改问题。我们将从测试中删除一些问题,但保留问题和答案用于统计研究。这意味着我们将用新的id创建新的问题。我们必须小心地将当前的问题与适当的答案配对。在我看来,最可靠的方法是对每个页面进行硬编码,而不是在一系列问题和数据中来回循环。你同意还是不同意?

谢谢。

  1. 我肯定会有一个数据库记录的每个答案。这样,无论你添加或删除问题都无关紧要。答案仍将与正确的用户和问题相关联。

  2. 我不明白为什么你的页面应该是静态的。您可以有一个问题模型,该模型具有一个字段,用于指示问题是否处于活动状态。你甚至可以用这个来求可能的答案。

我将像这样建模:

class User < ActiveRecord::Base
  has_many :user_answers
end
class Question < ActiveRecord::Base
  has_many :user_answers
  has_many :answers
end
class Answer < ActiveRecord::Base
  has_many :user_answers
  belongs_to :question
end
class UserAnswer < ActiveRecord::Base
  belongs_to :user
  belongs_to :question
  belongs_to :answer
end

相关内容

  • 没有找到相关文章

最新更新