2013-09-27 1 views
0

최종 사용자에게 일련의 질문을하는 webapp을하려고합니다. 이를 바탕으로 다른 일련의 질문들이 트리로 나뉘어 나타날 것입니다.PHP/MySQL에서 일련의 조건부 표현하기

예를 들면. 사용자에게 2 가지 질문이 있습니다.

1 살 : 몇 살입니까? a) 0 - 18 b) 18-35 c) 35-55 d) 55+ Q2 : 담배를 피우십니까? A) 예 B) 아니오

사용자가를 선택합니다 경우

이 | A는 그들이이 요청하는 경우, 질문의 새로운 세트를 요구하지 않습니다 | B를, 그들이 또 다른 질문, 등등하는 등

MySQL에서 이것을 나타낼 수있는 방법이 생기는 데 어려움이 있습니다. 어려움은 주로 대답 "a"가 Q1 + 답 "b"에 이어지는 질문을 다음 질문으로 연결한다는 사실을 통합하는 것입니다.

여기에 비슷한 질문을했습니다 : stackOverFlow.

그러나 결과에 만족스럽지 않고 내 예일 수도 있으므로 여기에서 자세히 설명했습니다.

+0

모든 '깃발'을 사용했습니다. OP는 자신에게 중복을 제공합니다 ... http://stackoverflow.com/questions/19056655/php-conditional-questions-data-structure ... LOL – djot

답변

0

이것은 조사 공동체 내에서 "라우팅"으로 알려져 있습니다.

이전에 설문 조사 엔진에 구현 한 방법은 설문 조사에서 모든 질문에 대답 할 수있는 규칙이없는 전체 질문 목록을 작성하는 것입니다.

그런 다음 질문의 각 답변에 속성을 첨부 한 다음 각 질문을 제출할 때 선택한 대답의 속성을 확인하고 설문 조사에서 향후 질문을 사용하지 않도록 설정할지 여부를 확인합니다.

이 작업이 끝나면 "GetNextQuestion()"행을 따라 약간의 논리를 사용하여 응답자가 정한 모든 규칙 (즉, 어떤 질문이 비활성화되어 있는지)을 확인한 다음 사용 가능한 다음 규칙을 표시 할 수 있습니다 그들에게 대답 할 질문.

기술적 측면과 관리자 측면 모두에서 복잡한 과정입니다.

데이터베이스 구조에는 Questions 테이블, Answers 테이블 및 AnswerID를 포함하는 AnswerDisablesQuestion 테이블과 해당 응답이 비활성화되는 questionID가 포함됩니다.

+0

당신은 그런 소프트웨어를 만들 때 사용할 수있는 모든 소프트웨어를 알고 있습니까? 내 webapp 또는 웹 사이트에서 사용하기위한 설문 조사? – user1416564

+0

https://www.surveymonkey.com/은 인기있는 솔루션이지만 호스팅 솔루션입니다. 유료 설문 조사는 상당히 큰 산업이므로 포괄적 인 오픈 소스 솔루션을 찾지 못할 것입니다. –