Database design 需要建议-带IndexedDB的角度4

Database design 需要建议-带IndexedDB的角度4,database-design,architecture,logic,backend,indexeddb,Database Design,Architecture,Logic,Backend,Indexeddb,需要建议!使用IndexedDB和Angular 4为混合移动应用程序开发具有脱机存储的应用程序。虽然我已经实现了CRUD操作,甚至集成了RESTAPI。我陷入了进一步的困境。 现在,这是我的问题陈述。 1) 例如,我有2000条来自ReST服务的记录,我将把它们存储在我的应用程序(浏览器)的IndexedDb中。我将在本地数据库(索引数据库)中显示和编辑我页面上的记录,并在本地数据库本身中进行编辑后保存,即我的所有事务都是使用本地索引数据库完成的。我如何管理本地数据库和我的应用程序访问的主数据

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

我怎样才能做到这一点我需要知道同步甚至更新特定标记记录的方法。即使记录中的任何字段都已更新-如何调整标志

除了代码的开发之外,我只需要知道实现这一点的方法。 提前谢谢

除了代码的开发之外,我只需要知道实现这一点的方法。提前谢谢

您可以使用的方法取决于您的技术选择。例如,您可以使用使用主/主设置构建的数据库,该设置可以在浏览器中运行,例如。PockDB是为这种情况而构建的

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

您还可以使用git方法,在这里您有变更集、冲突和合并


或者,您可以使用WebSocket进行同步。

应用程序的用户甚至可以在网站上执行操作,我需要与两者同步。您好,限制-我正在使用IndexedDb for mobile-使用Angular 4。