我想实现一个多项选择测验,并希望将所有问题和答案存储在SQLite数据库中。我会有很多问题,每个问题都会有2个或更多可能的答案来显示。在数据库中存储多项选择测验 - 决定模式
我的问题是,我应该如何将问题和答案存储在数据库中?我有一个模式两种想法(粗体主键)
- 为(多对多)
问题(questionID:INT,questionString:字符串,correctAnswerID:INT)
答案(answerID:INT,answerString:字符串)
questions_and_answers(questionID,answerID)
2.
问题(questionID:INT,questionString:字符串,correctAnswerID:INT)
答案(answerID:INT,answerString:字符串,questionID: int 外键)
我不确定哪一个更好,或者如果有其他方法?
也许questions_and_answers
会变得非常大,并导致检索时间长和内存问题?然后再次,我假设question_and_answers
将被索引在主键上。在第二个模式中,answers
将在上索引,而不是questionID
?这意味着搜索时间将会增加,因为整个表格将不得不被搜索?
可能有〜10,000 - 20,000个答案。 (测验可能在移动设备上运行,问题需要立即显示)
注意:我不认为问题之间的答案会有太多重叠。考虑到questions_and_answers
表
你的答案是否真的可能在多个问题上被重复? – Tenner 2012-04-10 03:37:19
粗略推测,我会说可能有30%的答案会出现在多个问题 – 2012-04-10 03:42:05