这是客户端/服务器应用程序系统。
客户端部分应用程序可以脱机模式,有时可以与服务器同步。 (比如GMail离线)
多个客户端可以连接到服务器,因此每个客户端都可以添加,编辑和删除其条目,并同步这些更改,如SVN(可能会发生冲突,但这不是问题。)
添加,编辑和删除条目的算法很简单。服务器可以为每个新条目创建唯一ID,客户端使用这些ID进行更新和删除。
新要求是条目的排序。
有两个客户应用 - x,y。并且它们存储了条目--A,B,C和D.这些条目数组为D-C-B-A,因此A的顺序属性为4,B为3,C为2,D为1.
客户端y在D和C之间创建新条目E
客户端与服务器同步后。
如何同步这些订单信息?
*附加测试*
Cient x删除D和C,但客户端y在D和C之间创建新的条目E.
同步后。
答案 0 :(得分:1)
我相信你应该坚持使用SVN协议。您不应允许在不同步(更新)的情况下提交,以查看是否发生了某些更改。
如果不这样做,您将对存储数据的一致性(一致性)产生很大问题。例如,您存储了D - C - B - A,客户端x和y已同步。
现在,如果所有客户端都会同步,则无法分辨F将放入数据序列的位置:D - F - E - B或D - E - F - B.
答案 1 :(得分:0)
您可能希望了解FeedSync如何处理同步中涉及的此问题(以及其他一些问题)。
答案 2 :(得分:0)
唯一困难的部分是删除一个条目,对吧?如何将已删除的条目保留在服务器上,但将其标记为已删除。一旦所有客户端都与服务器同步,所以他们都不知道该条目,您也可以从服务器中永久删除它。