我有一个集中托管的数据库(MS SQL Server),分布式客户端通过Internet将数据保存到它。当互联网连接断开时,客户端开始将新数据本地存储到SQLite实例中。当互联网连接重新联机时,累积的本地数据将被移至中央数据库(已插入)。为将要合并的分布式数据创建独特身份的最佳方法?
在这种情况下处理唯一ID的最佳方式是什么?其他重要信息:
本地客户能记住他们的本地数据库的ID以链接的目的而下线;因此必须将本地ID生成为全局唯一。
本地数据库中的唯一ID在合并回中央数据库时不应更改。
根据设备的不同,将来可能会为本地操作选择不同种类的数据库 - 例如, JavaDb,TextFileDb等;因此我认为这个解决方案不应该使用任何专有的数据库特性。
- 当更改合并回中央数据库时,所有记录都必须具有唯一的ID。
对于这个问题的假设名为MyTable
带有字段的简单表:ID
(主/唯一键无论何种类型应该是)和Field1
,Field2
,Field3
后者没有真正的问题。
首先想到的是使用GUID。有没有比这更好的方式或实践,或更好的方式来实现这一目标?
编辑: 使用Microsoft .NET和ADO.NET
你的假设是:正确。我添加了标签[ado.net]和[.net] – 2010-01-27 03:56:34
同步框架是我将要采用的方向。感谢您提出建议;我以前从未听说过这项技术。为了更好地了解Sync,这个.NET Rocks广播节目对我很有用:http://www.dotnetrocks.com/default.aspx?showNum=499 – 2010-01-28 04:26:37