随着Android学习的进步,我已经通过内容提供商介绍了数据源抽象的概念。
我注意到内容提供程序是通过URI访问的,这些URI本质上是分层的。
我们都知道层次结构的局限性,这是 one ,因为关系数据库的流行程度要高得多。
“问题”是层次 URI旨在表示关系数据库。
这本质上是否会降低关系数据库的其他访问方法(例如SQL)的功能和灵活性?像“有损压缩”之类的东西?
如果没有,我错过了什么?
答案 0 :(得分:1)
您缺少的可能是URI定义了一段数据,而不是它与其他数据的所有关系。它们不代表关系数据库,只是该数据库中的一段数据。您可以将关系数据库视为一堆重叠的层次结构,它们为您提供了许多方法来获取相同的数据。 Uri只定义了其中一条路径。
我使用了一个相当复杂的关系数据库,但我仍然可以使用URI访问一段数据。
这是我的方法:
Uri路径是我想从中检索数据的数据类型(或数据库表) Uri Query参数定义了我想要的数据必须满足的关系。
您可以使用所需的任何查询参数以及要返回的任何数据类型。然后由您决定如何在数据库管理器中实现它。