Hello everyone,
I am putting together a project where people are able to upload multiple choice questions to a larger database and then create tests from them. I have several questions (and I apologize for the length of this post) about what is the best way to go about doing this as my experience with databases is extremely limited and I am trying to plan out how I can tackle this problem. If there is already some open source software that is similar please let me know. Thank you in advance.
For my question Database:
The columns I intend to have include
1) QuestionID
2) Question
3) AnswerOpt
4) CorrectAns
5) Statistics
My first question is this: What is the best way to store the answer options? For example, I have a series of answers such as A) Daniweb B) Google C) Yahoo etc. Is the best way to simply store as one string and parse using the A), B), C) strings? How would I precent someone typing in A) into the answer options and screwing everything up (even though this is unlikely)?
Next question: In the future, I would like to be able to "link" questions. In other words, there may be a series of questions related to 1 question stem. Is there anything I should be doing now that can make making that easier in the future?
Test storage:
I would like to store the tests that users do and their answer choices. This is what is puzzling me a little bit. How should that database look like? Would I store the questions used in another string and just parse it? I would like to be able to update students how many questions they have finished, done correctly etc. With the database I have now, this seems like it would be an extremely slow method because I would have first look at userID, then parse all questions, cross-reference with the main Qbank and then finally spit out the answer. Is there a better way of doing this? Should I store questions used in a separate column in my user database? This is what I have been thinking:
Previous Test DB:
1) UserID
2) TestDate
3) PercentageCor
4) QuestionsUsed
5) Answers (answers they chose)
Again, really sorry for all the questions. Any input/opinion is appreciated.
Cheers,
cg