Math4Team/RIT/Projects/Question Support API/Data Model
Data Model
Here is a potential data model: (It was built for a corporate medical department's medical records. I've already renamed Clinic and Provider to School and Teacher.)
Table Dictionary
Questionnaire | A collection of questions that might be used in a Survey, Quiz, Exam, etc. | |
Question | A problem seeking an answer | |
Answer | A potential solution to the problem | |
AnswerType | The class of answer suitable for the problem or question | |
Survey | An event instance of collecting Answers to Questions or problems | |
Response | An event instance of the Student providing an answer to a question on a Survey or Quiz, etc | |
School | An organization | |
Person | An individual, such as a Teacher, Student, etc. |
Questionnaire
ID | primary key | |
Title | Short name for questionnaire | |
Category | Classifier ID, the ID of a Questionnaire class or category of Questionnaire | |
Notes | Description, Image link, rich format data | |
StartDate | Effective date for this instance of the Questionnaire | |
EndDate | Expiry date of this instance |
Question
ID | primary key | |
Questionnaire | ID of parent questionnaire | |
Sequence | number to order question among questions on questionnaire | |
Question | text problem statement | |
AnswerType | ID of the suitable answer type | |
Jump | conditional number to redirect survey question sequence | |
Notes | Description, images, rich format data | |
StartDate | Effective date of this question instance | |
EndDate | Expiry date of this instance |
Answer
ID | primary key | |
Question_ID | ID of parent question | |
Sequence | number to order answer among answer choices for question | |
Answer | text of solution or answer | |
Notes | Description, images, rich format data | |
StartDate | Effective date of this answer instance | |
EndDate | Expiry date of this instance |
AnswerType
ID | primary key | |
AnswerType | text for the class of answer. Example, text, numeric, multiple choice, tabular, yes/no, etc. | |
Category | ID for class of answer type |
Survey
ID | primary key | |
BaseID | ID of parent Survey. Used to identify families of Surveys, such as version | |
School | ID of the School or organization sponsoring this Survey instance | |
Teacher | ID of Person extending this instance of the survey or quiz | |
Student | ID of the Person taking this instance of the survey or quiz | |
Notes | Description, images, rich format data for this instance of the survey or quiz | |
DateTime | DateTime that this Survey instance was taken | |
ReviewDate | Date that this Survey instance was reviewed by the Teacher | |
ChangeDate | Date that this instance of the Survey was changed (reasons are provided in the Response record). |
Response
ID | primary key | |
Answer_ID | ID of selected answer (when one of a choice) | |
Question_ID | ID of the Question instance for this Response instance | |
Survey_ID | ID of the parent Survey or Quiz instance for this Response | |
Response | text of Response | |
ResponseValue | numerical Response | |
Notes | Description, images, rich format data for this Response | |
ChangeDate | DateTime that this instance of the Survey was changed, i.e., initial response, update by Student, override by Teacher, etc. | |
ChangePerson | ID of Person who changed this Response instance, i.e., Student, Teacher | |
ChangeReason | text reason this Response instance was changed, i.e., initial response, update by Student, override reason |
School
ID | primary key | |
School | School or organizational name |
Person
ID | primary key | |
Last Name | Family name for Person | |
First Name | Primary name for Person |
Comments
Authorship and history attributes for Questions could be provided through a new Person ID field in Questionnaire and recursive links.
- For reference, here is the Moodle Question database structure.