2013-10-30 3 views
2

동적 질문 및 답변에 대한 현재 관계형 모델이 있습니다. 성능과 유연성을 위해 스키마를 MongoDB로 변환 할 수 있는지 확인하려고합니다.동적 질문 및 답변을위한 MongoDB 스키마

기본적으로 일련의 질문과 질문 유형이 있습니다. 이 질문들은 한 세트의 질문에 포함됩니다.

질문은 특정 순서로되어 있지만 일부 질문에 대해서는 답변에 따라 달라질 수 있습니다.

예를 들어 경우 Q1 = YES 다음 내가 현재 사용하는 다양한 관계형 tavles없이 질문 Q2

이러한 스키마를 설계하는 방법에 대한 아이디어를 물어 다른 질문 Q9 물어?

답변

3

어떤이 구조의 라인을 따라 뭔가에 대해 :

{ 
    "Questions" : 
    [ 
     { 
      "QuestionNumber": "Q1", 
      "QuestionType" : "YESNO", 
      "QuestionText" : "Are you happy today?", 
      "Answers" : 
      [ 
       { 
        "Text" : "YES", 
        "NextQuestionIfAnswered" : "Q9" 
       }, 
       { 
        "Text" : "No", 
        "NextQuestionIfAnswered" : "Q2" 
       } 
      ], 
     }, 

     { 
      "QuestionNumber": "Q2", 
      "QuestionType" : "MULTIPLE", 
      "QuestionText" : "Why aren't you happy?", 
      "Answers" : 
      [ 
       { 
        "Text" : "Dog died", 
        "NextQuestionIfAnswered" : "" 
       }, 
       { 
        "Text" : "I'm just generally sad", 
        "NextQuestionIfAnswered" : "" 
       } 
      ], 
     }, 
     { 
      "QuestionNumber": "Q9", 
      "QuestionType" : "TEXTBOX", 
      "QuestionText" : "Type why you are happy into the box below", 
      "Answers" : [] 
     } 
    ] 
} 
그래서

당신이 질문의 배열, 질문 번호, (결정을 렌더링하는 데 사용) 질문 유형과 각하고 가능한 답의 각이 지정된 답을 선택한 경우 탐색 할 질문 번호가 포함됩니다.

배열의 각 "답변"에 userAnswer 속성을 추가하여이 질문에 대한 사용자의 답변을이 문서에 저장할 수도 있습니다. 그러나 사용자 수에 따라 별도의 컬렉션에 보관해야 할 수 있습니다.