2014-12-29 4 views
0

첫 번째 질문은 어떤 발가락 :안드로이드 ListView에 다 대다 관계 SO, 내가 밟고있어 있으면 알려 주시기 바랍니다 수

이 내 데이터베이스의 단순화 된 버전입니다 :

CREATE TABLE products (_id INTEGER PRIMARY KEY, name STRING); 

CREATE TABLE product_tag (product_id INTEGER, tag STRING, PRIMARY KEY(product_id, tag)); 

내 활동 중 하나에서 행에 포함 된 모든 태그 (예 : 제품 당 한 행)를 나열하고 싶습니다. 나는 생각했다

bananas [yellow] [fruit] 
ketchup [condiment] [red] [tomato] 
mustard [yellow] [condiment] 

옵션은 다음과 같습니다

  1. 각 태그에 대한 뷰를 만들고에 삽입 프로그래밍 각 행의 ViewBinderproduct_tag를 쿼리, 모든 products을 목록에 SimpleCursorAdapter를 사용하고, 열.

  2. 쿼리 당 태그 당 하나의 행 (또는 태그가없는 제품 당 하나의 행)을 생성하고 수동으로 목록을 채 웁니다. 이것은 더 복잡하고 해킹 된 것처럼 보이고 일부 데이터를 복제하지만 products의 각 행에 대해 db를 쿼리하는 것을 피합니다.

안드로이드에 대한 경험이 많은 사람이 이것을 수행하는 가장 효율적인 방법에 대해 의견을 말할 수 있다면 좋겠어요! 미리 감사드립니다.

답변

0

확실히 # 2. 데이터베이스 액세스가 느리므로 데이터베이스 쿼리 수를 최소화해야합니다.