我正在尝试实施多项选择测验,并希望将我的所有问题和答案存储在SQLite数据库中.我会有很多问题,每个问题都会有2个或更多可能的答案要显示.
我的问题是,我应该如何将问题和答案存储在数据库中?我有两个架构的想法(粗体的主键)
问题(questionID:int,questionString:String,correctAnswerID:int)
答案(answerID:int,answerString:String)
questions_and_answers(questionID,answerID)
2.
问题(questionID:int,questionString:String,correctAnswerID:int)
答案(answerID:int,answerString:String,questionID:int 外键)
我不确定哪一个更好,或者是否有另一种方式?
可能questions_and_answers会变得非常大,导致检索时间长和内存问题?然后,我假设question_and_answers将在主键上编入索引.在第二个模式中,answers将被索引answerID而不是questionID?意味着搜索时间会增加,因为必须搜索整个表格?
可能有大约10,000 - 20,000个答案.(测验可能在移动设备上运行,问题需要"立即"显示)
注意:我不认为问题之间的答案会有很多重叠.考虑到questions_and_answers表格所需的额外空间,我认为重叠量不会意味着存储的数据更少