gpt4 book ai didi

mysql - rails : Creating a survey data structure with variable type answers

转载 作者:行者123 更新时间:2023-11-29 11:32:55 25 4
gpt4 key购买 nike

我正在 Rails 应用中创建一个调查答案数据结构来收集用户信息。我将提出多项选择、数字字段和开放式问题的混合体,因此我的(MySQL)数据结构将需要处理可变数据类型。我怎样才能实现这个目标?我当前的计划是基于之前的答案 here :

  1. 用户模型(参与者)
  2. 调查模型(调查)
  3. 问题模型(提出的问题)
  4. 选择模型(“文本”列中存储的问题的可能选择)
  5. 答案模型(将选择与参与者用户联系起来的答案)

这对于带有复选框的多项选择文本答案非常有用,但是如果我希望答案是整数字段(例如“你的年龄是多少?”)或开放式文本字段(例如“可以改进什么?”) ?”)?

不同类型的字段

我认为对于每种可能的类型(例如文本、整数、日期时间等)具有多个列的选择或答案模型会很糟糕,因为它会非常稀疏。

每种类型有多个选择表会更好吗? (例如 Choice_Text、Choice_Integer 等)

但是答案模型如何链接到正确的表?

开放式独特答案

我应该将唯一的文本答案存储在答案模型中作为另一个数据列,还是每次将其存储在选择模型中作为新条目?

任何帮助将不胜感激。干杯!

最佳答案

因此,我最终使用多态关联来链接不同类型的输入,并通过将开放式文本答案添加到 Choice_Text 表来处理它们。

如果以后有人遇到这个问题,数据结构如下:

class Survey < ActiveRecord::Base
has_many :survey_questions
has_many :survey_attempts
end

class SurveyAttempt < ActiveRecord::Base
has_many :survey_answers
belongs_to :survey
belongs_to :user
end

class SurveyQuestion < ActiveRecord::Base
has_many :survey_choices
belongs_to :survey
end

class SurveyChoice < ActiveRecord::Base
has_many :survey_answers
belongs_to :survey_question
belongs_to :survey_choice_value, polymorphic: true
end

class SurveyChoiceString < ActiveRecord::Base
has_many :survey_choices, as: :survey_choice_value
has_many :survey_question, through: :survey_choices
end

class SurveyChoiceText < ActiveRecord::Base
has_many :survey_choices, as: :survey_choice_value
has_many :survey_question, through: :survey_choices
end

class SurveyChoiceInteger < ActiveRecord::Base
has_many :survey_choices, as: :survey_choice_value
has_many :survey_question, through: :survey_choices
end

class SurveyAnswer < ActiveRecord::Base
belongs_to :survey_choice
belongs_to :survey_attempt
end

关于mysql - rails : Creating a survey data structure with variable type answers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37102270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com