2011-09-18 140 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) 

你知道,在這個查詢問題文本始終是一樣的,所以你可以從第一行閱讀並忽略其他。

製作一個視角與否取決於你,但它可能沒有必要。