我正在尝试实施多项选择测验,并希望将我所有的问题和答案存储在 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
考虑到表所需的额外空间,我认为重叠量不会意味着存储的数据更少