我正在设计一个“测验”应用程序,其格式如下:
顶部的一个主要问题,然后是5个子问题,他们必须以1-5的比例回答这个顶级问题,如此屏幕截图所示:
我想使用sqlite数据库,但我不确定如何构建它/多少个表以及列应该是什么。
这会有效吗?
questionTbl: questionID, questionText (for the main question at the top)
subquestionATbl: questionID, subQuestionAID, subQuestionA, subQuestionACorrectAnswer
subquestionBTbl: questionID, subQuestionBID, subQuestionB, subQuestionBCorrectAnswer
subquestionCTbl: etc
subquestionDTbl: etc
subquestionETbl: etc
或者我可以用较少的表来减少它的复杂性吗?
questionTbl: questionID, questionText
(对于顶部的主要问题), subQuestionA, subQuestionB, subQuestionC, subQuestionD, subQuestionE
answersTbl: questionID, subQuestionACorrectAnswer, subQuestionBCorrectAnswer, subQuestionCCorrectAnswer, subQuestionDCorrectAnswer,subQuestionECorrectAnswer
你有什么建议?
答案 0 :(得分:0)
在回答这个问题之前,让我们考虑一个例子:
问题:“很久以前有一头母猪带着三只小猪...... [继续讲述这里三只小猪的故事]”
子问题A:“第一个小猪房子是由什么制成的?”
答案1:“稻草”
答案2:“棒子”
答案3:“砖块”
答案4:“钢铁”
假设这个例子说明了你的问题将如何呈现,那么我可能会倾向于这样的实体关系模型:
一个question
表,列出了顶级问题列表(例如三只小猪的故事);
一个subquestion
表,其中列出了“选择A”,“选择B”,......,问题(例如“第一个小猪的房子是由什么构成的?”); < / p>
如果您愿意,您甚至可能有第三个实体用于与五个选项相关联的文本,1到5(例如“稻草”):
我绝对不认为你想要“选择A”,“选择B”等单独的表格。
并且,请记住,如果您要使用SQLite,请考虑使用FMDB,这样可以更轻松地
。