2013-08-07 3 views
-1

설문 조사를 설정하는 좋은 방법을 생각하고 있습니다. 한 가지 요구 사항은 다른 질문의 값을 토대로 질문이 팝업된다는 것입니다. 예를 들어 사용자가 questionA에 "예"라고 대답하면 길 아래로 물어볼 것입니다. questionX. 이 대답은 의무적이어야합니다 (그러나 questionA 자체는 필수 사항은 아닐 수도 있습니다).설문 조사 데이터베이스 디자인 - 다른 질문의 대답을 기반으로 한 조건부 질문

지금 데이터베이스 계층에 이러한 조건을 구현할지 여부를 결정하려고합니다. 즉, 런타임시 평가되는 질문에 간단한 표현식을 추가하십시오. questionX 해당 필드가 questionA.value == "YES" 일 때, 그러나 questionA.value == "YES" || (questionZ.value == "NO && questionF.value > 30)처럼 복잡해질 수 있습니다.

런타임에 이러한 표현식을 수동으로 구문 분석하는 과정에서 발생하는 명백한 합병증 이외에도 잊고있는 다른 문제가 있습니까?

답변

0

10 명에게 10 가지 답변을 요청하면 설문 조사 로직을 데이터베이스가 아닌 애플리케이션 계층에 배치 할 것입니다.

개인적인 경험을 통해 성능이 가장 큰 문제는 아닙니다. 비즈니스 규칙에 대한 코드를 유지하는 것은 가장 어려운 일이 될 것입니다.

귀하의 응용 프로그램을 잘 관리 할 수 ​​있도록 규칙/논리를 응용 프로그램 계층에 넣는 것이 좋습니다. 데이터베이스에 이러한 종류의 로직을 넣는 것은 매우 복잡합니다.

if 문과 부울 식을 런타임에 평가해도 성능에는 영향을주지 않습니다. 지나치게 많은 데이터 집합을 반복하지 않도록하십시오. 괜찮을 것이라고 확신합니다.