android - 在客户端(android)和服务器(rails PostgreSQL)之间同步数据库

标签 android ruby-on-rails database postgresql synchronization

我们正在构建一个调用管理软件,允许不同的人获得分配给他们的调用,他们可以在移动设备上编辑这些调用,然后从移动设备关闭调用,该调用将同步回服务器以供中央管理员监控。对于线性数据流,即在服务器上创建调用 > 发送到移动设备 > 在移动设备上更新 > 发送回服务器,我们已经能够建立数据流并且一切正常。

我被困在这个工作流程中可能出现的下一个复杂级别,即如果在调用创建并发送到移动设备之后,如果它在服务器上更新,那么如何将此更改与移动设备同步,保持请记住,可能在移动设备上进行了一些更改,但由于通话尚未关闭,因此尚未同步。现在没有自动同步,移动用户必须按下一个按钮,该按钮指示在调用关闭时将数据发送回服务器的操作,这是我们希望作为工作流程的一部分。同时,我们希望在数据同步和更新方面实现一些自动化,直到通话结束。

我可以用 git 和代码版本控制(先拉后推)来类比,但可能会发生合并冲突,必须手动解决。

感谢对此问题的任何见解。

ps:在 android 和 PostgreSQL(ruby on rails)中的 SQLite 上实现,移动设备模仿服务器的数据结构,存储来自服务器的记录的相应 id,以调用 REST API 来更新服务器上的数据。

最佳答案

因此我们设法编写了大量自定义 API 来处理服务器和客户端之间的所有数据交换。我们想出了一个自定义冲突解决方案,它描述了所有可从移动设备编辑的数据字​​段的更高优先级,因此每次将数据同步到移动设备时,都会保存更高优先级的数据(即,如果移动设备更改了这些字段,则这些值是即使服务器也更改了数据也会保留)。 此外,在编辑移动设备中的数据之前,我们还会从服务器提取数据,以确保始终提供最新数据。 这符合我们试图实现的业务逻辑,因此不能一概而论。

关于android - 在客户端(android)和服务器(rails PostgreSQL)之间同步数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36951459/

相关文章:

android - 无法找到 Java 运行时 Android Studio Robolectric

java - 查看寻呼机 - 使用静态变量以编程方式滑动到下一页

java - Android Studio 是否完全支持 JDK 1.8?

android - RecyclerView 分离 View 仍然可见

ruby-on-rails - 在 Ruby on Rails 中缩进整个产量输出 2 个空格?

ruby-on-rails - 在两个或多个 Rails 应用程序之间共享代码……git 子模块的替代方案?

database - 带 OR 条件的 CouchDB View

ruby-on-rails - Nginx:无法将 HTTP 响应转发回 HTTP 客户端

java - 尝试使用 JAVA 将输入保存到 SQL 时出错

sql - 仅当 ANSI sql 不存在时才创建表