在Rails中设计长格式数据库& ActiveRecord的

时间:2015-05-12 04:50:35

标签: ruby-on-rails database activerecord

我想存储复杂的表格/问卷数据,但我很难设计数据库:

用户可以创建新的考试。创建考试时,用户需要从包含30个预设问题的模板中进行选择(我想在数据库中存储每个问题的答案)。

模板的目的是让从业者可能想要进行不同的考试(例如膝盖考试,手臂考试,脊柱考试等)。所以他们创建一个新的考试,选择一个特定的模板。每个模板都有很多问题

设计此数据库的最佳方法是什么?我开始创建考试,模板和问题模型,但后来我迷失了建立关系。

1 个答案:

答案 0 :(得分:0)

以下是我最终设计数据库的方法。我添加了第4个"答案"模型。通过这种方式,我可以将问题的答案,模板的问题和考试的模板联系起来。

希望这有助于某人

enter image description here

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