【发布时间】:2012-01-18 15:38:05
【问题描述】:
我正在尝试找出在我的模型中存储/处理分支逻辑的最佳方式。
用户会设置不同的规则,规则是“如果调查者选择答案 1,则显示问题 2、3 和 4”
我有问答模型,所以我可以存储规则并根据需要将它们映射到问答 ID。
只是从数据库列的角度不确定如何最好地处理它。
【问题讨论】:
标签: ruby-on-rails logic
我正在尝试找出在我的模型中存储/处理分支逻辑的最佳方式。
用户会设置不同的规则,规则是“如果调查者选择答案 1,则显示问题 2、3 和 4”
我有问答模型,所以我可以存储规则并根据需要将它们映射到问答 ID。
只是从数据库列的角度不确定如何最好地处理它。
【问题讨论】:
标签: ruby-on-rails logic
使用地图:
(答案 1)->(Q1、Q2、Q3)
至于数据库架构: 鉴于此表
questionsTable:ID、CurrentAnswer、NextQuestion
select NextQuestion from questionsTable where CurrentQuestion='A1'
A1->Q1 ^ A1->Q2 ^ A1->Q3
或者您可以将每个含义分开作为单独的语句。
然后评估这些表达式。然后结果可以指向下一个问题。
【讨论】:
可能的答案属于单个问题(列 answer_id)。 问题:has_many :answers 答案:belongs_to :question
对于后续问题,这可能需要更多工作: 问题可以属于(=跟随)不同的答案,并且多个答案可以有相同的问题跟随它们。所以在这里你很可能需要一个 has_and_belongs_to_many 关系与一个存储 question_id 和 answer_id 的中间表。
【讨论】: