gpt4 book ai didi

android - 实现内容提供者 : compound primary key

转载 作者:行者123 更新时间:2023-11-29 02:03:51 24 4
gpt4 key购买 nike

我正在实现我自己的内容提供程序,因为我要将我的数据库与服务器同步。我的数据存储在 SQLiteDatabase 中,我的一些表有一个复合主键(2 列,每列都是另一个表的外键)。

我刚开始使用 Content Provider,我不太了解它们是如何工作的,但正如我在谷歌搜索中看到的那样,我需要定义表的名称及其主键:

uriMatcher.addURI(PROVIDER_NAME, "books", BOOKS);
uriMatcher.addURI(PROVIDER_NAME, "books/#", BOOK_ID);

据我了解,如果我使用 URI .../books/1,它将访问主键为“1”的图书。问题是,它是否适用于复合主键?如果是,URI 将如何?

谢谢!

最佳答案

I'm implementing my own Content Provider because I'm gonna synchronize my database with a server.

您不需要使用 ContentProvider 将数据库与服务器同步。

The thing is, does it work with a compund primary key?

不容易。引用 the docs :

Table data should always have a "primary key" column that the provider maintains as a unique numeric value for each row.

您可以添加一个单独的列(通常命名为 _id),您将用作 ContentProvider 的主键。如果您使用 AUTOINCREMENT 列,您将永远不必自己分配一个值,这意味着您几乎可以在所有方面忽略此列,除非 ContentProvider 需要一个实例URI.

欢迎您尝试避免这种情况,并使用看起来像 content://your.authority.goes.here/table/key1/key2Uri或类似的东西。但是,它不适用于 CursorAdapter 并且框架中的其他各个地方可能会采用数字 ID 模式。

关于android - 实现内容提供者 : compound primary key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11086235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com