问题标签 [data-synchronization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1128 浏览

iphone - 使 iPhone 应用程序与 GWT 应用程序保持同步

我正在开发一个应该在离线和在线模式下工作的 iPhone 应用程序。
在它的在线模式下,它应该将用户输入的所有信息提供给由 GWT/GAE 支持的网络服务。在它的离线模式下,它应该在本地存储信息,当连接可用时,将其同步到网络服务。

目前我的计划如下:

  1. 使用 Protobuffers 提供应用程序和 Web 服务之间的连接,以实现高效的有线通信
  2. 使用 Core Data 处理本地数据库
  3. 轮询网络状态,并在可用时同步数据库并保持某种 local-db-to-remote-db 密钥同步。

问题是——我的方向是否正确?是实现这一点的标准模式吗?也许有人可以向我指出一个以类似方式工作的开源应用程序?

我对 iPhone 编码真的很陌生,很高兴听到任何建议。

谢谢

0 投票
1 回答
1608 浏览

synchronization - 具有多个客户端和服务器数据库的 Microsoft Sync Framework

我正在对应用程序进行更改以拥有本地数据存储,而不是直接连接到数据库服务器。然后,客户端应用程序将在服务器数据库及其本地数据存储之间双向同步更改。我正在尝试使用 Microsoft Sync Framework 实现同步解决方案。需要明确的是没有服务器应用程序,只有数据库服务器,但有多个客户端。

我已经开始实现两个实现 FullEnumerationSimpleSyncProvider 的类,一个叫做 LocalSyncProvider,一个叫做 ServerSyncProvider。LocalSyncProvider 知道如何从本地数据存储中枚举、插入、更新、删除项目,而 ServerSyncProvider 知道如何从数据库服务器中枚举、插入、更新、删除项目。它们各自使用提供的 SqlMetadataStore 并将两个元数据存储(一个用于本地,一个用于服务器)存储在客户端的本地驱动器上。这意味着每个客户端都有自己的本地数据存储元数据存储和服务器数据库自己的元数据存储。

这真的可行吗,是否只需要存在一个服务器元数据存储,还是我需要以不同的方式使用同步框架?

0 投票
9 回答
5368 浏览

javascript - 用于客户端存储与服务器端同步的 javascript 库

我正在寻找一个 javascript 库,它可以让我将数据存储在客户端数据库中,并在后台自动将数据库同步回服务器的数据库

更喜欢以与 jStore for jQuery 相同的方式支持各种引擎的东西

环顾四周,我可以找到任何东西

0 投票
1 回答
503 浏览

mysql - 数据同步解决方案?

对于某些安全问题,我处于第三方应用程序无法访问我的数据库的环境中。出于这个原因,我应该有一些服务/工具/脚本(不知道是什么......我对最好的选择持开放态度,仍在阅读以了解我要做什么......)这使我能够定期生成基础(每天、每周、每月)一些 csv 文件,其中包含某个应用程序的所有新/修改记录。

我应该能够自动化这个过程,并随时导出一个新文件。所以它应该跟踪他仍然需要记录的每个应用程序。

每个应用程序都需要一些其他格式的数据(csv/xls/sql),一些应用程序需要一些字段,而有些则不需要......它应该相当灵活......

对我来说最好的选择是什么?为每个应用程序创建一些自定义表?基于提取修改后的数据?

0 投票
1 回答
2377 浏览

oracle - 您如何以编程方式在 EPMA 应用程序之间执行数据同步?

我想安排一个批处理作业,其中可以在 Hyperion Fusion Edition for Oracle 中的两个工作区应用程序之间执行数据移动。提供的工具称为“数据同步”如果活动通过工作空间环境根据请求发生,该工具允许这种类型的活动。

  • 我怎么能自动做到这一点?

我注意到有一个批处理调度程序,我可以请求命令行批处理文件在预先指定的时间运行。但是,我不知道有哪些资源可以向我展示如何为数据同步执行此操作。

0 投票
1 回答
246 浏览

sqlite - 更新用于本地元数据和服务缓存的本地 sqlite 数据库?

我已经搜索了该站点,但没有找到完全回答我的问题的问题/答案,我找到的最接近的是:在两个不同的系统之间同步对象最佳方法

无论如何要开始,因为没有可用的 RSS 提要,我正在屏幕抓取网页,因此它会进行抓取,然后它会通过网页抓取我感兴趣的所有信息并将该信息转储到sqlite 数据库,以便我可以在闲暇时查询信息,而无需从网站重复获取。

但是,我还在存储在 sqlite 数据库中的数据本身上存储各种元数据,例如:我查看过数据,数据是新的/旧的,为一大块数据添加书签(将其视为一个集合不相关的数据,书签只是指向我在处理/读取所述数据的位置的指针)。

所以现在我当前的问题是试图弄清楚如何以有效和直接的方式使用新数据和/或来自网站的更改数据更新本地 sqlite 数据库。

这是我目前的想法:

  1. 下载页面本身
  2. 为解析后的数据创建一个临时表以进入
  3. 在官方和临时表之间进行比较,并将更新和/或新信息复制到官方表

这个过程似乎有点复杂,因为我必须弄清楚如何确定临时表中的数据是新的、更新的还是未更改的。所以我想知道是否没有更好的方法,或者是否有人对如何构建/构建这样的系统有任何建议?

编辑 1: 我不确定将附加信息放在哪里,在评论中或作为编辑,所以我将在此处添加。

这在书签方面扩展了元数据,基本上数据源可以创建新数据/添加到当前数据,所以我考虑做临时表想法的一个原因是我能够确定是否已“添加书签”的数据源是否有任何新数据。

0 投票
3 回答
615 浏览

iphone - 在 iPhone 应用程序中同步数据的最佳策略

我正在开发一个从服务器(XML、JSON 等)提取数据的常规 iPhone 应用程序,我想知道实现同步数据的最佳方法是什么。标准是速度(较少的网络数据交换)、健壮性(更新失败时的数据恢复)、离线访问和灵活性(当数据库结构发生轻微变化时的适应性,如新列)。我知道它因应用程序而异,但你们能分享一些你的策略/经验吗?

对我来说,我正在考虑这样的事情:

1) 在 iPhone 中存储上次修改日期

2) 启动后,发送一条消息,如 getNewData.php?lastModifiedDate=...

3) 服务器将只处理和发回上次修改过的数据。

4) 该数据的格式如下:

<+><data id="..."></data></+> // add this to SQLite/CoreData

<-><data id="..."></data></-> // remove this

<%><data id="..."><attribute>newValue</attribute></data></%> // new modified value

我也不想为每个属性制作 <+>, <->, <%>...,因为它太复杂了,所以可能在收到 <%> 字段时,我会删除数据使用指定的 id 然后再次添加它(假设这里的 id 不是自动递增的字段)。

5) 下载并更新所有内容后,我将更新上次修改日期字段。

这种策略的主要问题是:如果我在更新某些东西时网络出现故障 => 上次修改日期尚未更新 => 下次我重新启动应用程序时,我将不得不再次经历同样的事情。更不用说潜在的不一致数据了。如果我使用临时表进行更新并使整个事情原子化,它会起作用,但同样,如果更新时间太长(大量数据更改),用户必须等待很长时间才能获得新数据。我应该对每个数据字段使用 Last-Modified-Date 并逐步更新数据吗?

0 投票
1 回答
1288 浏览

iphone - iPhone 应用程序和 Web 应用程序之间的双向同步

我有一个依赖于 MySQL 数据库的 Web 应用程序,我正在考虑为此构建一个 iPhone 应用程序。此应用程序将允许用户在 Web 应用程序上浏览/插入/更新/删除其帐户上的数据。

最简单的方法是将 iPhone 应用程序简单地构建为 Web 应用程序的接口,即每个操作都需要连接到 Web。但是,我希望 iPhone 应用程序拥有自己的“离线”版本的数据库。这不仅可以让用户离线工作,还可以提供更好的体验,因为将一切都放在本地意味着更快、响应更快的应用程序。

我会通过使用时间戳并保持最新版本来处理冲突(我已经使用软删除,即当用户删除记录时,我只需设置一个标志),但我还没有完全弄清楚如何处理插入。实际上,如果用户在离线(iPhone 应用程序)和在线(Web 应用程序)数据库中插入新项目,就会发生主键冲突(我所有的表都有一个 INTEGER 字段,主键是自动递增)。我该如何处理这个问题?

我正在考虑有一个双列主键,一个是自动递增的整数,第二个是特定于“设备”的。这样,通过 Web 应用程序添加的新记录将具有 ID 1-web、2-web 等,而通过 iPhone 应用程序 1-iphone、2-iphone 等创建的记录将允许合并两者没有冲突的数据库。你觉得这个主意怎么样?

0 投票
1 回答
114 浏览

c# - Microsoft 同步框架和整数作为标识符

我必须在移动设备上的本地存储和服务器数据库之间实现数据同步。

问题是我们的数据库(已经生产多年)都使用整数作为记录的 ID。恐怕将其更改为 GUID 目前不是一种替代方法,因为它的影响太大。

有人有一个很好的解决这个问题的方法吗?

0 投票
1 回答
2797 浏览

sql-server - 用不同的模式同步 2 个数据库

我们有一个使用通用表设计的标准化 SQL Server 2008 数据库。因此,我们没有为每个实体(例如 Products、Orders、OrderItems 等)提供单独的表,而是使用通用表(Entities、Instances、Relationships、Attributes 等)。

我们决定使用一个单独的非规范化数据库来快速检索数据。假设它们具有不同的模式,您能否告诉我同步这两个数据库的各种技术?

干杯,莫什