【发布时间】:2010-03-26 23:44:41
【问题描述】:
我正在编写一个具有离线支持的应用程序。即浏览器/移动客户端每隔一段时间将命令同步到主数据库。
我在客户端和服务器端都使用 uuid。同步到服务器时,服务器将返回本地 uuid (luid) 到服务器 uuid (suid) 的映射。收到此地图后,客户端会使用适当的值更新其记录 suid 属性。
但是,比如说客户记录,例如待办事项有一个属性“list_id”,它保存待办事项列表记录的外键。我在客户端的 foreign_keys 中使用 luids。但是,当将该属性发送到服务器时,它会使用 luids 而不是服务器正在使用的 suid 弄脏服务器数据库。
我当前的解决方案是让主服务器记录 luid 到 suid(每个客户端 id)的映射,并且对于命令中的每个外键,查找该特定客户端的 suid 并改用 suid .
我想知道其他人是否遇到过这样的问题,如果遇到过,他们是如何解决的?有没有更高效、更简单的方法?
我查看了这个问题“将一个或多个数据库与主数据库同步 - 外键 (5)”,有人似乎建议我当前的解决方案作为一个选项,使用 suid 和自动递增序列的复合键和另一个选项使用-ve ids 用于客户端 ID,然后使用 suid 更新所有否定 ID。这两个其他选项似乎都需要更多的工作。
谢谢,
赛蒙
【问题讨论】: