【发布时间】:2012-04-10 03:25:20
【问题描述】:
我正在尝试实施多项选择测验,并希望将我的所有问题和答案存储在 SQLite 数据库中。我会有很多问题,每个问题都会显示 2 个或更多可能的答案。
我的问题是,我应该如何将问题和答案存储在数据库中?我对架构有两个想法(主键以粗体显示)
- as(多对多)
问题 (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 表所需的额外空间,我认为重叠量不会意味着存储的数据更少
【问题讨论】:
-
你的答案真的有可能被多个问题重复吗?
-
粗略猜测,我会说可能 30% 的答案会出现在多个问题中
标签: sql database database-design