2011-09-18 104 views
0

我在我的SQLite数据库中有4个表。一个带有问题,一个带有问题ID外键,一个分类表和一个问题类别表,其中包含问题和类别之间的多对多关系(每个问题可以属于多个类别)。如何处理多个游标结果

因此,在我的Android应用程序中,我想提取一个问题,其中包含所有属于它的数据。我需要如何正确处理它的帮助。我应该在我的数据访问对象中创建一个名为类似于getQuestionSet(int questionId)的方法,该方法将进一步的方法调用委托给问题表,回答表等,并将questionId作为where子句?或者我应该做一个已经有了这个sql查询保存的视图?但是随后会有几行包含问题文本,因为每个问题都有4个答案。还是有其他解决方案?另外,如果我需要做第一种方法,我是否会创建一个数据传输对象,并在其中携带游标引用?

+0

我会让你的getQuestionSet,并让它返回一个光标,你可以用它来一次访问你的答案。 –

+0

这是一个比Java问题更多的SQL查询问题。 – medopal

回答

0

总是尝试尽可能在数据库上执行单个查询,它速度更快,管理起来需要更少的工作量。您可以使用INNER JOIN操作在单个光标中获取问题和答案。结果可能包含重复数据,但不会造成任何伤害。你的结果游标可能看起来像:

_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) 

你知道,在这个查询问题文本始终是一样的,所以你可以从第一行阅读并忽略其他。

制作一个视角与否取决于你,但它可能没有必要。