2011-10-09 3 views
1

다른 모듈/질문 카테고리를 포함하고 다양한 질문/문제 유형 (예 : 객관식, 복수 선택, 오디오, 오디오 및 양식, 기타)을 허용하는 테스트 도구를 개발 중입니다. 테스트 (퀴즈)에는 다양한 선택 항목이있는 객관식 질문이 포함됩니다. 다음은 퀴즈 엔진에 대한 스키마는 어떻게 만듭니 까?

내 초기 스키마입니다 : 내가 가장 좋은 방법은 다른 질문/문제 유형을 허용 할 생각

Category(Id, Name) 

Question (Id, CategoryId) 

MultipleChoiceQuestion (Id, QuestionId, Text) 

MultipleChoiceWithAudioQuestion (Id, QuestionId, Text, AudioFile, Transcript) 

AudioQuestion (Id, QuestionId, AudioFile, Transcript) 

Answer (Id, QuestionId, Correct) 

MultipleChoiceAnswer (Id, AnswerId, Text) 

AudioQuestionAnswers (Id, AnswerId, Field, Value) 

Test (Id, UserId, TestDate) 

TestQuestions (Id, TestId, QuestionId) 

TestAnswers (Id, TestId, QuestionId, AnswerId) 

하면 해당 질문 유형에 대한 특정 추가 필드를 포함 할 각 하위 유형의 테이블을 만드는 것이 었습니다 . Type, Subtype, and Category Patterns in Logical Data Modeling

테스트는 서로 다른 범주로 구성되며 각 범주는 해당 특정 범주에서 무작위로 선택된 질문으로 구성됩니다. 사용자가 수행 한 각 테스트는 데이터베이스에 저장됩니다.

내가 올바른 길을 가고 있다고 생각하십니까? EntityFramework와 같은 ORM을 사용하여 클래스에 테이블을 매핑하는 방법은 무엇입니까?

내가 생각한 또 다른 스키마는 너무 일반적이고 쿼리하기가 어려웠습니다.

Content (Id, Name) 

ContentMeta (Id, ContentId, MetaKey, MetaValue) 

계층 형 복합 유형의 테스트는 어떻게 표시합니까? ASP .NET MVC 3 (면도기)에서 모델 바인딩을 사용할 수 있습니까?

답변

1

방법에 대해 :

조사 아이디 이름 설명

QuestionType 아이디

질문 아이디,536 이름 설명QuestionTypeId 디스플레이

설문 조사에 질문이 있거나 질문에 유형이 있습니다. 답변 저장에 관해서는 다른 이야기입니다. 수만 건의 응답을 얻으 려하고 데이터를 임시로 쿼리해야한다면 동적 SQL을 작성하여 각 설문에 대한 테이블을 작성하십시오. 그렇지 않으면 단일 응답으로 응답을 저장합니다. 표.