Android新手 - 数据库是否必须_id?

War*_*blr 0 database sqlite android

我有一个在iOS上运行的应用程序,其数据库使用复合主键.为了便于讨论,让我们说"CID"和"RID"构成复合pk,从而产生如下内容:

CID-RID
F6uuDTEU1c-1
F6uuDTEU1c-2
F6uuDTEU1c-3
Run Code Online (Sandbox Code Playgroud)

但是,存在更改CID列的条件,重置RID列.例如:

CID-RID
...
F6uuDTEU1c-4
F6uuDTEU1c-5
WQq6JnyrDI-1
WQq6JnyrDI-2
WQq6JnyrDI-3
...etc
Run Code Online (Sandbox Code Playgroud)

这些数据库将被跨平台共享(ios-android)并且返回并编辑当前的ios结构不是一种选择.我在Android上运行的pk没有_id列会遇到什么问题?

我在SO上发现了一点 - 这似乎表明db本身不必拥有_id列,只有...

"游标的结果集必须包含_id,而不是游标本身."

......但我读错了.非常感谢任何输入/帮助.

PS:我已经在这里,这里这里看了几个(我认为是)类似的问题.

laa*_*lto 6

您可以自由拥有所需的任何数据库架构.Android不会在那里施加任何额外的限制.

只有你使用a CursorAdapter,才Cursor需要一_id列.任何应用程序都可以在不使用的情况下编写CursorAdapter,它只是为了提供一些便利.如果表有一个ROWID列,则sqlite表总是有一个别名列的INTEGER PRIMARY KEY列.您可以随时选择它_id,例如,SELECT rowid AS _id ...如果需要.