我的情况是:
- 我有许多使用本地数据库的客户端应用程序(MS SQL,MS Access - 抱歉,这是企业系统,我必须支持旧版......)
- 我不知道客户之间的任何趋势——现在大约是 10 个,但一年可能会达到 100 个。
- 这些表中的数据进入我的中央服务器并放入一个公用表中
- 有时现有(客户端)数据会更改 - 我必须执行更新/删除操作
- 我不想使用 GUID(.NET 类型
System.Guid
)——很难在 MS Access 上简单地实现和支持。此外,这对性能不利 - 我需要在那个公用表上快速搜索,所以使用
int
或long int
作为 PK会很好
所以,我想要:
- 避免碰撞的独特东西(它将用作PK)
- 它应该是
int
或long int
- 在插入之前必须是可分配的客户端
我目前的解决方案是从以下串联中获取 CRC:
- 进程ID
- 简历日期
- 用户名(字符串、硬件\用户相关数据)
- 日期时间.Now (UNC)
目前它对我有用,但也许有更好的方法来实现我的目标?您有任何意见、建议、示例或经验吗?
更新:客户端和服务器之间的同步是周期性动作,因此每天可以发生 2-3 次(它是配置变量)