0

我有一个复杂的关系,我很难在视图中表达出来。我需要一些帮助来找出建立关系的最佳方式,这可能会解决我的大部分问题。

我在这里有一个图表:图表

基本上我正在尝试建立一个动态调查类型的应用程序。管理员可以去添加问题和问题选择。当用户登录时,他们可以去回答这些问题。他们每个问题只能选择一个答案,但会有一个部分,他们可以选择他们从“匹配”中接受的任何答案。这将用于匹配用户。

例如:

问题:

什么是你最喜欢的颜色?A) 红色 B) 黄色 C) 蓝色

比利选择红色,但表示他会接受红色或黄色作为比赛的答案。

约翰选择黄色并说他会接受红色或黄色的答案。因此,因为他们都选择了彼此“接受列表”中的颜色,所以这两个将在问题上匹配。

建立关系并在视图中表示它的好方法是什么?我很难把我的大脑包裹在这个周围......

谢谢!

4

1 回答 1

1

我不知道您是否可以更改架构,但如果可以,我认为您可以简单地做到这一点。

我将尝试执行以下操作:

型号(表):

Users
  -id

Questions
  -id

Choices
  -id
  -question_id

Answers
  -id
  -user_id
  -choice_id
  -question_id
  -is_acceptance (boolean)

User has_many answers
Qestion has_many choices
Choice belongs_to question
Answer bleongs_to user , question 

然后,您可以将所有答案保存在一张表中,并仅标记(真或假)主要答案。毕竟,您可以编写自己的逻辑来检索相同的答案、接受答案等。

于 2013-06-05T12:57:27.750 回答