需要建议-带有IndexedDB的Angular 4

时间:2018-07-04 19:05:30

标签: database-design architecture logic backend indexeddb

需要建议!使用带有Angular 4的IndexedDB和混合移动应用程序开发具有脱机存储的应用程序。尽管我已经实现了CRUD操作,甚至集成了我的REST API。我陷入了进一步的困境。 现在,这是我的问题陈述。 1)例如,我有2000条来自我的ReST服务的记录,并将其存储在应用程序(浏览器)的IndexedDb中。我将显示和编辑本地DB(Indexed)上页面上的记录,并在编辑后保存在本地DB本身中,即,我的所有事务都使用本地Indexd Db完成。如何管理应用程序命中的本地数据库和主数据库之间的记录同步? 2)如果更新了这2000条记录中的任何一条,是否需要将整个主数据库同步到本地数据库?或我怎么知道哪些特定记录已更新?好的,拥有旗帜可以暂时解决该问题。但是,需要进行双向同步。 a)索引数据库中的已编辑记录将同步到主数据库(我无法将整个索引数据库同步到主数据库,我只能拥有标志,并且只能将已编辑记录同步到主数据库)。 b)主数据库也可能会更新(这2000条记录中的任何一条,或者同时添加了更多记录),我需要将主数据库与本地的索引数据库同步。

我该如何实现? -我需要了解同步甚至更新特定标记记录的方法。甚至记录中的任何字段都已更新-如何调整标记?

除了代码的开发之外,我只需要了解这种方法。 预先感谢!

1 个答案:

答案 0 :(得分:0)

  

除了代码的开发之外,我只需要了解这种方法。预先感谢!

您可以使用的方法取决于您所选择的技术。例如,您可以使用由可在浏览器中运行的主/主设置建立的数据库,例如Pouch DB。 PouchDB是为此情况而构建的。

另一种方法是使用不变性模式,在这种情况下,您无需编辑任何记录,只需插入版本即可。借助不变性,您可以根据自己的策略(即客户端在线等)将数据上传到服务器并从服务中下载数据。 在您的代码中,您只需要使用最新的数据集。

您还可以使用git方法,其中包含变更集,冲突和合并。

或者也许您可以使用websocket进行同步。