我目前有一个系统,根据用户提供的某些答案显示某些部分。目前我把它设计为:
标识--- --- SectionId --- QuestionId回答
例如,如果用户回答问题12的Y,我将启用第21节。如果他们对13和14都回答了Y,那么第22节将被启用。
1 --- 21 --- 12 --- Y
2 --- 22 --- 13 --- Y
2 --- 22 --- 14 --- Y
这工作正常,最近我开始接收基于OR条件的请求。我正在考虑将表格更改为以下设计,但想要反馈,如果有更好的方法来解决这个问题:
Id---SectionId---ConditionalId
1---21---12
2---21---13
ConditionalId---QuestionId---Answer
12---4---Y
12---5---N
13---6---Y
13---7---Y
因此,第21节显示系统的方式必须验证ConditiondalId 12或13,如果有效则显示。
答案 0 :(得分:0)
您不应该使用用户的答案保存ConditionalId。
UserAnswers表: UserID - QuestionId - 回答
问题表: QuestionId - NextLevelId - ChildLevelCondition(0表示任意,1表示所有)
每个问题ID都可以告诉ChildLevelCondition它应该如何检查Y和N下面的级别。 如果在孩子身上你没有问题和ChildLevelCondition = 1那么多,那么就不允许这样做。如果至少有1个Y和ChildLevelCondition = 0,则可以转到此级别 您可以使用分组依据和案例