2012-08-24 3 views
3

저는 현재 퀴즈 애플리케이션을 만들고있는 프로젝트에서 일하고 있습니다. 객관식 또는 단답형 문제가있는 퀴즈를 10-20 개 문항으로 할 수 있습니다. 사용자의 답변을 정답과 비교하여 확인한 다음 사용자의 답변 점수를 유지할 수 있어야합니다.퀴즈 프로그램을위한 MySql 데이터베이스 디자인

나중에 온라인에서 퀴즈를 만들 수있는 백엔드 기능을 구현할 수도 있지만 지금은 데이터베이스와 직접 작업 할 수 있도록 남겨 두겠습니다.

내 질문에 대한 ... 나는 꽤 내 데이터베이스와 테이블을 모든 기능을 허용하도록 설계하는 방법에 분실 해요. 여기에 내가 현재이 설정 한 방법입니다

퀴즈 표

  • 이름 행
  • ID 행

질문 표

  • ID 행
  • 해당 퀴즈 ID 행
  • 실제 질문 텍스트 행

답변 표

  • 해당 퀴즈 ID 행
  • 해당 질문 ID 행
  • 실제 응답 텍스트 행
  • if_correct_answer 행

각 퀴즈에는 고유 한 ID가 있으며 각 질문에는 상위 퀴즈 ID와 고유 ID가 있습니다. 그러면 부모 퀴즈 ID와 상위 질문 ID가 응답에 포함됩니다.

현재로서는 올바른 답을 선택하면 if_correct_answer 행에 0보다 큰 값이 표시되고 마지막에는 모든 대답의 값이 0이됩니다. 더 해지고 얼마나 많은 사람들이 옳은지 알 수 있습니다.

내 데이터베이스를 디자인하는 좋은 방법입니까? 나는 여기에 다른 게시물에 대한 기본적인 아이디어를 보았지만, 나는 그것을 완전히 이해했는지 정확하게 사용하고 있는지 확실하지 않다. 나는 기본적으로 모든 다른 ID를 조정하는 방법에 대해 혼란스러워합니다. (나는 아마도 도움이되지 않는 MySQL과 PHP의 초보자이다.)

답변

2

당신의 테이블 구조는 나에게 잘 어울린다. 사용자의 응답을 저장하기 위해 또 다른 테이블이 필요합니다.

사용자의 응답 테이블 -

  • ID
  • USER_ID
  • 이 answer_id question_id quiz_id 거친 구조
  • answered_date

그리고 이름, user_id, 전화 번호 등의 기본 정보를 저장하는 또 다른 표가 필요합니다.

0

퀴즈에 대한 질문을위한 연결 표를 만들 수 있습니다. 그런 다음 모음을 만들 수 있습니다. 새로운 퀴즈를 만드는 데 사용할 수있는 질문이 있습니다. 거친 개요 :

퀴즈 표

  • 이름 행
  • ID 행

질문 퀴즈 테이블에

  • 퀴즈 ID
  • ,개
  • 질문 아이디

질문 표

  • ID 행
  • 실제 질문 텍스트 행

답변 표

    ,
  • ID 행
  • 해당 질문 ID 행
  • 실제 응답 텍스트 행

사용자의 응답 테이블 -

  • ID
  • 을 quiz_id USER_ID 거친 구조 문제 _id
  • 는 answer_id
  • answered_date
  • if_correct_answer 행
관련 문제