在同步数据时处理主键

时间:2014-03-02 10:47:54

标签: android sql-server wcf sync

我正在研究android应用程序,它将使用wcf服务将其与服务器上的数据存储接口。可以从网站和我的Android客户端添加和更改数据,我需要反映数据库的最新状态。我不清楚的是,如果我在我的本地数据库中插入一行(在电话上,将在第一种可能性时同步)并且其他人在我甚至拥有之前插入一行带有理智的ID(主键),该怎么办?可以将我的更改同步到服务器。

我在sql server中听说过row_version列,但我不确定我是否可以以及如何在我的情况下使用它。任何人都知道如何解决这个问题?

谢谢。

2 个答案:

答案 0 :(得分:0)

处理此问题的两种方法是:

  • 拥有一个主键,包含2个部分,原始插入数据库的ID和序列号。
  • 使用Guids作为主键,密钥是在代码中生成的,而不是由数据库生成的。

由于您使用的是SQL Server,因此您应该查看MS Sync Framework。但它可能不是一个完整的解决方案,因为你使用的是Andriod。

答案 1 :(得分:0)

这取决于您的PK是什么以及您如何将移动设备同步到服务器。合并复制适用于标识列,我已经看到它(即合并复制)在Android设备上演示。