为要合并的分布式数据创建唯一标识的最佳方法是什么?

我有一个集中托管的数据库(MS SQL Server)和分布式客户端通过Internet保存数据。当Internet连接断开时,客户端开始将新数据本地存储到SQLite实例中。当Internet连接重新联机时,累积的本地数据将移动到中央数据库(已插入)。 在这种情况下处理唯一ID的最佳方法是什么?其他重要信息: 本地客户端可以在离线时记住其本地数据库ID以进行链接;因此,必须生成本地ID作为全局唯一。 合并回中央数据库时,不应更改本地数据库中的唯一ID。 根据设备的不同,将来可能会选择不同种类的数据库用于本地操作 - 例如一个JavaDb,一个TextFileDb等;因此,我认为此解决方案不应使用单一的专有数据库功能。 将更改合并回中央数据库时,所有记录都必须具有唯一ID。 对于这个问题假设一个名为
MyTable
的简单表,其中包含字段:
ID
(主要/唯一键应该是什么类型)和
Field1
Field2
Field3
后者并不重要。 首先想到的是使用GUID。有没有比这更好的模式或实践或更好的方法来实现这一点? 编辑: 使用Microsoft .NET和ADO.NET     
已邀请:
GUID有效。 除此之外,这在很大程度上解决了Microsoft Sync Framework的问题(您没有提到您的开发平台,因此这里有一个假设)。它不依赖于任何数据库或数据类型或协议,并且可以配置为在各种离线方案中工作(好吧,这听起来像商业......) http://msdn.microsoft.com/en-us/sync/bb887625.aspx     
正如你所说,出于许多显而易见的原因,人们会想到GUID,其中一些原因在这里涉及 主键:ID与GUID 您可能也想阅读此答案 表中主键的最佳实践是什么?     

要回复问题请先登录注册