因此,我正在规划一个应用程序,它将涉及到在服务器上有一个主数据库,比如说3000张CD,标题,艺术家和发布日期。
1)当用户将CD添加到他们的收藏中时,它会将其添加到应用程序本地SQLite DB。但是假设我把CD标题拼错了,所以我对它进行了更新。当用户转到同步时,我应该如何处理更新的行?我是否应该有一个列'IsUpdated‘,它只是一个数值,每次我更新该行时都会加1?这样,当应用程序看到服务器上的IsUpdated大于该特定项目的本地IsUpdated时,它将立即替换内容。这有意义吗?它还实用吗?还有什么其他的选择呢?
2)如何处理新增栏目?比如添加条形码或价格?我是不是只是在本地推送添加新列的应用程序的更新,然后在服务器上执行相同的操作,然后让其余的运行?这也将随着同步问题而逐渐上升到第1位。
发布于 2010-12-16 01:32:16
首先,你必须提供比这更多的细节。整个3000主列表是否也向下复制到远程数据库?
听起来是这样的。
如果是这样的话,与其说这是一个数据库设计问题,不如说这是一个复制问题。
更新表中的每一行都不是一个好主意,尤其是会使行变长的那一行。你最好扔掉桌子,重新创建。<-这就是它在服务器上的RDBMS中的工作方式,不知道这个概念在客户端数据库上是否发生了变化。现在,我们遇到了比简单的数据库复制更多的iPhone复制问题。只是重新发布这个应用会不会更好?用户数据是否与服务器数据分离。发布后可以在本地/远程表上执行DDL吗?
而不是像你在#1中概述的那样,在整个列表中搜索更改。我会保留一个过时的增量表。本地应用程序将存储一个last_updated_Datetime,增量表中该datetime之后的任何记录都需要关闭。下载后,本地系统可以确定如何应用它们。再说一次,这不适合大规模更改。
https://stackoverflow.com/questions/4452545
复制相似问题