我的应用程序将从客户那里收集信息并将其备份到服务器。每次用户插入、更新或删除他们的信息时,应用程序都会尝试将最新数据备份到服务器。如果出现连接错误或其他问题,该应用程序将在下次机会时尝试备份所有未更新的数据。
我的问题是有什么好的解决方案来完成它吗?我当前的解决方案是:托管对象有一个名为is_updated
默认值的属性:false。
当用户插入数据时,应用程序读取行属性和 objectID 并将它们作为 JSON 发送到服务器。如果服务器成功将数据插入到 mysql 中,它会以 objectID 响应。HTTP 处理程序将
is_updated
objectID 行的 设置为 true。更新的处理方式与插入类似。要查找要更新的记录,我必须在服务器表中添加一个 objectID 字段。
要处理删除,我需要另一个属性
is_deleted
。当用户删除记录时,应用程序将通过设置is_deleted
为 true 来隐藏记录。服务器删除记录后,应用程序最终删除记录。在这三个操作中,应用程序将检查是否有任何未更新的记录并一起处理。
但我觉得解决方案有点丑陋。处理混合在一起的多个插入、删除操作确实很复杂。也许我必须在一个操作队列中发送多个 HTTP 请求。如果用户重新安装应用程序,应用程序需要从服务器获取所有记录并存储在本地。但是他们的 objectIDs 不再起作用了。
你有更好的解决方案吗?