如何使用android中的内容提供程序加入/比较查询。 这可能吗?
答案 0 :(得分:9)
根据两个表之间的关系,我通常应用以下任何解决方案,我在库项目中记录这些解决方案,通常您可以通过这些解决方案公开所有项目的外部可用接口(如内容提供商):
如果表A包含几乎没有兴趣的信息而没有与表BI连接,只需在查询A时返回A和B的JOIN。您可以在库中,在您将定义的位置记录它“表A”的URI。
如果表A和B包含应该可以单独查询的数据(我的意思是:没有JOIN)那么我通常会提供一个额外的URI,例如在我的库中名为A_JOIN_B_URI,查询时,返回两个表的JOIN。再次,您在lib中记录了这一点。
可能有更多选项,但我认为这些选项最符合ContentProvider的概念:一个与其背后实现的数据存储无关的接口。在您明确使用底层数据存储的功能的任何地方,现在通过看起来很奇怪的“帮助URI”就可以清楚地看到这一点。
欢迎任何评论,也许我可以学到一两件事......