我将开发一个可以在线和离线工作的移动应用程序。
我的问题是如何做到这一点。实现它的最有效方法是什么?当管理员更改服务器数据库并且客户端想要更新时,服务器应该如何提供客户端修订版到服务器最后修订版之间的数据。例如:
服务器
客户A
客户B
当客户A想要更新时,它应该得到修订版3-4,当客户端B想要更新时,它应该得到修订版2-3-4。
提前致谢。
答案 0 :(得分:1)
您可以在数据库中创建修订表(增量ID)。一旦客户端上线,在启动时,您的应用程序将检查服务器的最大ID并将其与客户端的版本ID进行比较。如果服务器的最大ID大于客户端,它将根据服务器上的修订表更新系统(您可以将修订更新的过程名称插入到其他列中,以便在检查过程中选择过程名称,然后运行这些过程更新或其他列可能包括说明)
客户端的修订版不应大于服务器版。如果是这样,您应该降级客户的修订版。
如果表中缺少修订版,这不是问题,则不会对该版本运行修订更新过程。 如果你使用sql存储过程,你的客户端更新将是这样的:(客户端版本是R2,服务器是R6,R5被管理员删除)
exec sp_revision_update R3
exec sp_revision_update R4
exec sp_revision_update R6
在此示例中,R5已从服务器中删除,R6 必须包含先前修订的修订,因为某些客户端在删除之前可能有R5。
答案 1 :(得分:0)
您可以尝试使用“ID”进行检查,这样您就可以从客户端收到最大ID,服务器会检查客户端是否需要更新,例如。在你的服务器中你的最大值ID为4,最大值ID客户端是2(客户端A),您从3更新到最后一个ID,否则执行任何操作。