2014-12-04 1 views
0

이벤트/질문이 관리자에 의해 게시되고 사용자가 투표하거나 답변하는 앱을 개발하고 싶습니다. 여기에서 문제는 세 가지 유형이 될 수 있으며, 각 유형은 각 질문에 대한 보고서를 볼 수있는 다른 option.Admin을 가질 수 예컨대온라인 투표 응용 프로그램 데이터베이스 스키마가되어야합니다

  • WHQuestion : 결혼에 적합한 나이는 무엇입니까? (1) ABC (2) PQR N 등이
  • YesNoQuestion 최고의 선장 ... : : 좋은 Dhoni는 (1)> 20 (2) (20) (3) (20) <
  • 투표가 = 선장? (1) 예 (2) 아니요

그래서 여기 데이터베이스 스키마와 테이블에 대해 혼란스러워합니다. 어떻게 관리해야합니까?

답변

1

모든 질문은 하나 또는 하나의 정답이있는 객관식입니다. 그래서 : 하나의 질문, 몇 가지 대답, 하나의 선택적인 정답.

  • 질문 : question_no, 텍스트
  • 대답 : question_no, answer_no, 텍스트 질문이 올바른지 당 어떤 대답을 저장하는 방법에 관해서는

, 두 가지가 있습니다 옵션 :

  1. answer_no를 질문 레코드에 저장하십시오. 나는 이것을 더 나은 선택이라고 생각한다. 지연 제약이있는 dbms (질문 레코드는 응답 레코드를 참조 할 수 있고 반대의 경우도 마찬가지 임)는 여기에있는 것이 좋습니다. 정답이 없으면 answer_no는 null입니다.
  2. 답변 테이블에 깃발을 넣은 다음 질문 당 하나의 답변을 올바른 것으로 표시하고 다른 하나는 잘못된 것으로 표시하십시오. 질문 당 여러 개의 정답이 가능한 경우이 방법이 적합합니다. 그러나 하나의 정답에 대해서는이 둘의 최악의 선택이 될 것입니다. 데이터 일관성을 보장하기 위해 약간의 복잡한 검사가 필요할 수 있습니다 (예 : 고유성을 보장하는 함수 색인). 정답이 없으면 같은 값을 저장하거나 모든 대답에 대해 null을 저장할 수도 있습니다. 그러나 투표 결과임을 알기 위해 답을 찾아야합니다. 다시 한번, 옵션 1은 질문 레코드에서 바로 볼 수있는 더 나은 선택입니다.
관련 문제