使用PouchDB-CouchDB和MySQL的移动应用程序

tra*_*ace 17 mysql mobile couchdb pouchdb

我正在开发一个包含在Cordova中的移动应用程序,它与基于PHP和MySQL的基于Web的应用程序一起运行.移动应用程序使用本地存储并通过已写入的服务层获取数据,以便在移动应用程序和MySQL数据库之间交换数据.移动应用程序仅使用存储在主MySQL数据库中的数据子集.

我希望用pouch DB替换我的移动应用本地存储解决方案并看到它需要CouchDB ...这让我想到了一个潜在的配置/解决方案,我想知道是否可行和可行. .

在主MySQL数据库和移动应用程序的PouchDB之间建立一个作为中介/从属运行的CouchDB数据库是否可行?移动服务层将使用此数据库(以及必要时的主MySQL数据库)和主SQL和沙发数据库之间的数据更新通过cron定期推送.CouchDB只存储MySQL DB中与移动应用程序相关的数据子集.

这个解决方案听起来有点矫枉过正/好主意吗?是否有更好的方法来接近上述设置?我喜欢pouchdb-CouchDB的想法...但不想重写我的整个web应用程序以使用couch-DB,而提供移动专用数据子集的额外抽象级别似乎很有用.

谢谢跟踪

nla*_*son 10

在Node上运行的PouchDB实际上可以使用任何基于LevelDOWN的适配器,并且有一个用于MySQL.我没有测试过.更多信息请访问:http://pouchdb.com/adapters.html#pouchdb_in_node_js.

但是,这可能不适合您的用例,因为PouchDB将存储在MySQL中的数据与您的应用程序当前在MySQL中使用的数据完全不同.为了支持复制,PouchDB保存了存储的每个文档的修订历史记录(想想git),这与MySQL之类的传统数据库不同,后者只存储可以删除/插入/更新的表和行.像CouchDB和PouchDB这样的数据库是从头开始构建的,以支持复制,这就是这个版本控制系统存在的原因.

话虽如此,如果你在MySQL和CouchDB之间编写自己的同步层,它可以在理论上起作用,但是你可能会失去CouchDB和PouchDB内置复制的好处.