Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 类似SQL接口的模式?_Android_Sqlite - Fatal编程技术网

Android 类似SQL接口的模式?

Android 类似SQL接口的模式?,android,sqlite,Android,Sqlite,我有两个表,SyncedComments和QueuedComments,后者保存本地注释,直到它们与Web服务器同步。当它们成功同步时,它们被放置在同步表中,我的应用程序应该与每种类型无关。我通过游标装入器装入注释,当用户阅读注释时,注释可能会被移动到同步表中。假设用户还可以编辑注释,可能是在注释被移动时,这样应用程序就应该知道注释在哪里,而不管它的表是什么 为了支持这一点,我考虑了一个包含3列的表,local_id、synched_id和queued_id,local_id是持久的,只是作为对

我有两个表,
SyncedComments
QueuedComments
,后者保存本地注释,直到它们与Web服务器同步。当它们成功同步时,它们被放置在同步表中,我的应用程序应该与每种类型无关。我通过游标装入器装入注释,当用户阅读注释时,注释可能会被移动到同步表中。假设用户还可以编辑注释,可能是在注释被移动时,这样应用程序就应该知道注释在哪里,而不管它的表是什么

为了支持这一点,我考虑了一个包含3列的表,local_id、synched_id和queued_id,local_id是持久的,只是作为对其他两个id中的一个的引用。创建注释时,插入一个新行,其sync_id设置为NULL,队列id已给定;移动注释时,队列id设置为NULL,并设置sync_id。这样,我的应用程序只需要始终引用本地id


这个解决方案看起来怎么样?有什么缺点吗?它能做得更聪明些吗?

首先,我会将所有注释放在一个表中,并带有是否同步注释的标志(实际上,它可能是服务器上的ID,在同步之前设置为NULL,之后从服务器获取值)。这将使您减少到1个表,而不是3个表,更容易显示所有注释(因为您不需要进行联合),而且最重要的是避免在显示注释时同步注释时出现问题,因为注释不会移动到任何位置。而且它对数据库文件的写入更少,因此它会导致更少的碎片和对闪存设备的写入。

首先,我会将所有注释放在一个表中,并带有注释是否同步的标志(实际上,它可能是服务器上的ID,在同步之前设置为NULL,之后从服务器获取值)。这将使您减少到1个表,而不是3个表,从而更容易显示所有注释(因为您不需要执行union)最重要的是,在显示注释时,避免了同步注释时出现问题,因为注释不会移动到任何地方。而且它对数据库文件的写入更少,因此会导致更少的碎片和对闪存设备的写入。

感谢您的回答。这会对表键产生一些影响,我需要我不明白你的意思。你可以用同样的方法来获取评论,不管你是在一个表中还是在两个表中。查询看起来基本上是一样的。好吧,但是假设我想对一个id为空的评论进行更新,我做不到that@soren.qvist:如果注释不正确t synchronized,您将有空的服务器id,但您仍将填写本地id。而且您总是按本地id进行更新,因为这是稳定的。好的,我现在明白了,这肯定会使它成为可能,再次感谢!感谢您的回答。这将对表键产生一些影响,我需要能够获取每个注释都是单独的,没有键。我不明白你的意思。你可以用同样的方式获取注释,无论是在一个表中还是在两个表中。查询基本上看起来是一样的。好吧,但是假设我想对一个id为空的注释进行更新,我做不到that@soren.qvist:如果注释未同步d、 您将有空的服务器id,但您仍将填写本地id。而且您总是按本地id进行更新,因为这是一个稳定的id。好的,我现在明白了,这肯定会使它成为可能,再次感谢!