第一个问题,所以如果我踩到任何脚趾,请告诉我。)
这是我的数据库的简化版本:
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]
我考虑过的选项是:
使用SimpleCursorAdapter列出所有products
,在每行product_tag
中查询ViewBinder
,并以编程方式为每个标记创建视图并将其插入行中。< / p>
查询products LEFT JOIN product_tag ON products.id = product_tag.product_id
,导致每个标记一行(或每个产品一行没有标记)并手动填充列表。这看起来更复杂,更糟糕,并且复制了一些数据,但避免了查询products
中每行的数据库。
如果有更多Android经验的人可以评论最有效的方法来实现这一点,我会喜欢它!提前谢谢。
答案 0 :(得分:0)
绝对是#2。数据库访问速度很慢,因此您希望最大限度地减少数据库查询的数量。