我的SQLite数据库中有4个表。一个有问题,一个带有问题id外键的答案,一个类别表和一个问题类别表,它们在问题和类别之间保持多对多的关系(每个问题可以属于多个类别)。
所以,在我的Android应用程序中,我想要提取一个问题,其中包含属于它的所有数据。我需要有关如何正确处理它的帮助。我应该在我的数据访问对象中创建一个名为getQuestionSet(int questionId)
的方法,该方法将进一步的方法调用委托给问题表,答案表等,并将questionId作为where子句吗?或者我应该创建已保存此sql查询的视图?但是后面会有几行包含问题文本,因为每个问题都有4个答案。还是有其他解决方案吗?
另外,如果我需要进行第一种方法,是否要创建一个带有光标引用的数据传输对象?
答案 0 :(得分:0)
尽可能尝试在数据库上执行单个查询,速度更快,管理工作量更少。您可以使用INNER JOIN操作在单个Cursor中获取问题和答案。结果可能包含重复数据,但没有任何损害。结果光标可能如下所示:
_id, answer, question
1, Answer 1 Text, Question Text
2, Answer 2 Text, Question Text (same Question as above)
3, Answer 3 Text, Question Text (same Question as above)
您知道在此查询中,问题文本始终相同,因此您只需从第一行读取它而忽略其他行。
观看与否取决于你,但可能没有必要。