1

我正在构建一个在线测试应用程序。在我的应用程序中,一个问题可以是真/假问题、单选(只接受一个答案)、多选(接受多个答案)。我创建模型:

class Question < ActiveRecord::Base
  has_many :answers
end

class Answer < ActiveRecord::Base
  belongs_to :question
end  

问题模型将question_type_id检查它是 T/F、单选还是多选。

Answer 模型将有一个名为contenttyped text 的列,而我将有一个 boolean 列correct,用于知道哪个答案被接受。对于单选题和多选题,我认为答案是文本可以很好地存储在content列中,但是对于 True/False 问题,如果我只将答案存储在content列中并设置诸如“True”、“False”之类的文本是否是个好主意列中接受 True for answer correct?我不知道另一种更好的方法来处理真/假问题,有人可以帮助我吗?

4

2 回答 2

1

将布尔值存储为字符串似乎是完成您想要的最合理的方式。我建议在保存时对值进行规范化,以便在您获取答案时 true 和 false 看起来总是相同的。

于 2012-10-26T05:24:54.953 回答
0

由于我已经完成了这种应用程序,然后才能帮助您....

首先,您应该区分数据库中不同类型的问题......假设我们给他们提供 ID,那么我们有

0 表示 T/F 问题 1 表示单个正确的 MCQ 2 表示多个正确的 MCQ

完成此操作后,您需要有一个名为 Options 的不同模型,

问题有很多选项,问题通过选项有一个答案

在选项模型中,我们应该 4 列假设(选项 A、B、C、D)它是一个四个选择题......

于 2012-10-26T05:59:46.313 回答