我想存储复杂的表格/问卷数据,但我很难设计数据库:
用户可以创建新的考试。创建考试时,用户需要从包含30个预设问题的模板中进行选择(我想在数据库中存储每个问题的答案)。
模板的目的是让从业者可能想要进行不同的考试(例如膝盖考试,手臂考试,脊柱考试等)。所以他们创建一个新的考试,选择一个特定的模板。每个模板都有很多问题
设计此数据库的最佳方法是什么?我开始创建考试,模板和问题模型,但后来我迷失了建立关系。
答案 0 :(得分:0)
以下是我最终设计数据库的方法。我添加了第4个"答案"模型。通过这种方式,我可以将问题的答案,模板的问题和考试的模板联系起来。
希望这有助于某人
class User < ActiveRecord::Base
has_many :patients
has_many :assessments
end
class Patient < ActiveRecord::Base
belongs_to :user
has_many :assessments
end
class Assessment < ActiveRecord::Base
belongs_to :user
belongs_to :template
belongs_to :patient
has_many :questions, :through=> :template
has_many :answers, :through=> :questions
end
class Template < ActiveRecord::Base
belongs_to :user
has_many :questions
end
class Question < ActiveRecord::Base
belongs_to :template
has_one :answer
end
class Answer < ActiveRecord::Base
belongs_to :question
end