PhAQ Structure
Using a Socratic dialogue style, the students are guided to a specific concept. If a student has an incorrect observation or inference along the way, they are stepped through questions and additional feedback that is tailored to their problem.

Current question types:
What does this look like to the computer?
| PK/FK | Field Name | Field Definition | Field Datatype | FK Table |
| Courses | ||||
| PK | CourseID | The system generated ID given to all new course entries. | INT IDENTITY(1,1) | |
| CourseNumber | The course number assigned by Registrar's Office. | INT | ||
| CourseName | The name of the course. | VARCHAR(20) | ||
| Assignments | ||||
| PK | AssignmentID | The system generated ID given to all new assignment entries. | INT IDENTITY(1,1) | |
| FK | CourseID | The course ID to which the assignment belongs. | INT | Courses |
| AssignmentName | The name of the assignment. | VARCHAR(20) | ||
| AssignmentDescription | The description of the assignment. | VARCHAR(255) | ||
| AssignmentDueDate | The due date of the assignment. | DATETIME | ||
| Active | An indicator as to whether or not a problem is active. | BIT | ||
| AssignmentProblems | ||||
| PK | AssignmentProblemID | The system generated ID given to all new assignment problem entries. | INT IDENTITY(1,1) | |
| FK | CourseID | The course ID to which the assignment problem belongs. | INT | Courses |
| FK | AssignemntID | The assignment ID to which the assignment problem belongs. | INT | Assignments |
| FK | ProblemID | The problem ID to which the assignment problem belongs. | INT | Problems |
| ProblemNumber | The number of the problem within a specific assignment. | INT | ||
| Problems | ||||
| PK | ProblemID | The system generated ID given to all new problem entries. | INT IDENTITY(1,1) | |
| ProblemType | The type of problem (Match, MC, TF, Essay). | VARCHAR(20) | ||
| ProblemDescription | The description of the problem. | VARCHAR(50) | ||
| ProblemInstruction | The instruction given to the user. | VARCHAR(255) | ||
| ProblemTopic | The topic of the problem (used so the professor can organize problems). | VARCHAR(20) | ||
| FK | MMID | The multi media ID of the problem. | INT | Multimedia |
| Explain | An indicator as to whether or not the user needs to give a written explanation. | BIT | ||
| ExpertResponse | The expert response given when a problem is answered correctly. | VARCHAR(255) | ||
| FK | FollowUpProblemID | The problem ID of a follow-up question, given after the problem is answered correctly. | INT | |
| MatchProblem | ||||
| PK | MatchProlbemID | The system generated ID given to all new match problem entries. | INT IDENTITY(1,1) | |
| FK | ProblemID | The problem ID of the match problem. | INT | Problems |
| MatchSelectionNumber | The static number of selction choices for the match problem. | INT | ||
| Match | ||||
| PK | MatchID | The system generated ID given to all new match problem entries. | INT IDENTITY(1,1) | |
| FK | ProblemID | The problem ID of the match problem. | INT | Problems |
| Choice1 | The first choice of a match pair. | VARCHAR(50) | ||
| Choice2 | The second choice of a match pair. | VARCHAR(50) | ||
| Answer | An indicator as to whether or not the match pair is correct. | BIT | ||
| FK | NextProblemID | The problem ID of a feedback question, given if the problem is answered incorrectly. | INT | Problems |
| NextStatement | The feedback statement, given if the problem is answered incorrectly. | VARCHAR(100) | ||
| MultipleChoice | ||||
| PK | MultipleChoiceID | The system generated ID given to all new multiple choice problem entries. | INT IDENTITY(1,1) | |
| FK | ProblemID | The problem ID of the multiple choice problem. | INT | Problems |
| Choice | The choice. | VARCHAR(50) | ||
| Answer | An indicator as to whether or not the choice is correct. | BIT | ||
| DisplayOrder | The display order of the choice within a problem set. | INT | ||
| FK | MMID | The multi media ID of the choice. | INT | Multimedia |
| FK | NextProblemID | The problem ID of a feedback question, given if the problem is answered incorrectly. | INT | Problems |
| NextStatement | The feedback statement, given if the problem is answered incorrectly. | VARCHAR(100) | ||
| TrueFalse | ||||
| PK | TrueFalseID | The system generated ID given to all new true false problem entries. | INT IDENTITY(1,1) | |
| FK | ProblemID | The problem ID of the true false problem. | INT | Problems |
| Answer | An indicator as to whether or not the match pair is correct. | BIT | ||
| FK | MMID | The multi media ID of the problem. | INT | Multimedia |
| FK | NextProblemID | The problem ID of a feedback question, given if the problem is answered incorrectly. | INT | Problems |
| NextStatement | The feedback statement, given if the problem is answered incorrectly. | VARCHAR(100) | ||
| MultipleAnswer | ||||
| PK | MultipleAnswerID | The system generated ID given to all new multiple answer problem entries. | INT IDENTITY(1,1) | |
| FK | ProblemID | The problem ID of the multiple answer problem. | INT | Problems |
| Choice | The choice. | VARCHAR(50) | ||
| Answer | An indicator as to whether or not the choice is correct. | BIT | ||
| DisplayOrder | The display order of the choice within a problem set. | INT | ||
| FK | MMID | The multi media ID of the choice. | INT | Multimedia |
| FK | NextProblemID | The problem ID of a feedback question, given if the problem is answered incorrectly. | INT | Problems |
| NextStatement | The feedback statement, given if the problem is answered incorrectly. | VARCHAR(100) | ||
| RatingProblem | ||||
| PK | RatingProblemID | The system generated ID given to all new rating problem entries. | INT IDENTITY(1,1) | |
| FK | ProblemID | The problem ID of the rating problem. | INT | Problems |
| RatingLowBound | The low bound for the rating scale | VARCHAR(15) | ||
| RatingHighBound | The high bound for the rating scale | VARCHAR(15) | ||
| Rating | ||||
| PK | RatingID | The system generated ID given to all new rating problem entries. | INT IDENTITY(1,1) | |
| FK | ProblemID | The problem ID of the rating problem. | INT | Problems |
| Choice | The choice. | VARCHAR(50) | ||
| Rating | The rating. | INT | ||
| DisplayOrder | The display order of the choice within a problem set. | INT | ||
| FK | MMID | The multi media ID of the choice. | INT | Multimedia |
| FK | NextProblemID | The problem ID of a feedback question, given if the problem is answered incorrectly. | INT | Problems |
| NextStatement | The feedback statement, given if the problem is answered incorrectly. | VARCHAR(100) | ||
| MultiMedia | ||||
| PK | MMID | The system generated ID given to all new multi media entries. | INT IDENTITY(1,1) | |
| Type | The type of multi media (Applet, Image, Video). | VARCHAR(20) | ||
| SubType | The sub-type of a multi media (swf, qt, wmf). | VARCHAR(20) | ||
| Name | The name of a multi media object. | VARCHAR(20) | ||
| Description | The description of a multi media object. | VARCHAR(255) | ||
| FilePath | The file path (local to the server) of a multi media object. | VARCHAR(255) | ||
| Submissions | ||||
| PK | SubmissionID | The system generated ID given to all new submission entries. | INT IDENTITY(1,1) | |
| CourseID | The course ID of the submission. | INT | Course | |
| AssignmentID | The assignment ID of the submission. | INT | Assignment | |
| ProblemNumber | The problem number of the submission. | INT | ||
| ProblemID | The problem ID of the submission | INT | Problem | |
| ProblemType | The problem type of the submission. | VARCHAR(20) | ||
| UserID | The user ID of the submission. | INT | User | |
| Choice | The choice(s). | VARCHAR(50) | ||
| Answer | The answer. | BIT | ||
| AssignmentTimestamp | The timestamp for the assignment. | DATETIME | ||
| SubmissionTimestamp | The timestamp for the individual timestamp. | DATETIME |