我在本地Sqlite数据库中有一对多的关系。很基本的东西。当我做左外连接时,我得到的结果如下:
生成的游标有多行,如下所示:
A1.id | A1.column1 | A1.column2 | B1.a_id_fk | B1.column1 | B1.column2
A1.id | A1.column1 | A1.column2 | B2.a_id_fk | B2.column1 | B2.column2
依旧......
是否有处理此类结果的标准做法或方法?显然只有A1,但它有很多B-n关系。我即将使用多个查询而不是“关系数据库方式”。希望我不知道更好的做事方式。
我打算通过内容提供商公开这个查询,我讨厌所有的消费者必须编写相同的聚合逻辑。
答案 0 :(得分:2)
Joins已经在我曾经使用的每个SQL数据库中以这种方式工作 - 它有点概念的定义。
请记住,内容提供商涉及昂贵的远程过程调用。这就是为什么Android会使联系方式与联接之类的联接相同的结果,以最小化进程之间的往返次数。
您可以考虑使用远程服务而不是内容提供程序,并公开自定义API。您可以通过简单的List<>
返回给定A的B.或者,您可以使用JSON格式序列化整个事物。或者任何其他可能性,如果数据重复会扰乱你。