Mysql 爱奥尼亚:sqLite&;数据库还是NoSQL

Mysql 爱奥尼亚:sqLite&;数据库还是NoSQL,mysql,sqlite,ionic-framework,couchdb,pouchdb,Mysql,Sqlite,Ionic Framework,Couchdb,Pouchdb,我正在开发一个混合应用程序与离子。 目前我正在使用sqLite(关系型),因为我来自MySQL背景 由于我需要非常频繁地同步我的数据库(通常是在每次更改之后-无论是在应用程序中还是在服务器上),所以在投入时间创建自己的服务之前,我一直在寻找一些解决方案(不要重新发明轮子) 我从Nic Raboy()那里看到了一个很好的教程,他解释了如何使用pockdb进行轻松同步 到目前为止还不错,但我还不知道是否可以或如何在现有的sqLite数据库中使用PockDB,或者是否必须完全切换到NoSQL数据库 如

我正在开发一个混合应用程序与离子。 目前我正在使用sqLite(关系型),因为我来自MySQL背景

由于我需要非常频繁地同步我的数据库(通常是在每次更改之后-无论是在应用程序中还是在服务器上),所以在投入时间创建自己的服务之前,我一直在寻找一些解决方案(不要重新发明轮子)

我从Nic Raboy()那里看到了一个很好的教程,他解释了如何使用pockdb进行轻松同步

到目前为止还不错,但我还不知道是否可以或如何在现有的sqLite数据库中使用PockDB,或者是否必须完全切换到NoSQL数据库

如果我必须切换到NoSQL,那么我有一个问题:如何在NoSQL数据库中设计我的“关系”

让我详细询问:

我有一个SQL语句可以从2个或更多表中检索数据,如下所示:

SELECT c.title, c.info, ruc.active
FROM app_user u
INNER JOIN rel_user_categories ruc
ON ruc.uid = u.id
INNER JOIN app_categories c
ON c.id = ruc.cid
或者这个:

SELECT av.venuename, av.latitude, av.longitude, ao.title, ao.info, ao.beacon
FROM app_offers ao
INNER JOIN app_venues av
ON av.id = ao.venue
WHERE ao.active AND av.active
ORDER BY ao.expires ASC
如果我使用NoSQL,有没有办法触发一些完全相同的查询? 从大约一天起我就开始使用谷歌了,没有遇到任何解决方案


提前感谢您的帮助

关于你的第一个问题:

到目前为止还不错,但是我还不知道我是否或者如何在现有的sqLite数据库中使用PockDB,或者是否必须完全切换到NoSQL数据库

只能与使用相同同步协议的数据库同步。这将是其中之一:

  • CouchDb()
  • Cloudant作为CouchDb服务()
  • 沙发床()
  • 数据库服务器()
你的第二个问题很笼统。您需要阅读JSON文档中的结构化数据以及与关系数据库的差异。这是一个不同的世界,你将不得不花一些时间在这上面,所以一定要仔细阅读

如果您要使用MongoDB(它不能同步,但比CouchDB更经常使用,所以您可能会找到为Mongo编写的有用文章),情况也是如此


学习JSON文档的数据结构和查询CouchDB需要一些时间。但是如果你需要同步,这当然是值得的。在这方面,没有其他数据库可以与之相比。

嗨,亚历克斯!谢谢你的解释!我想我必须阅读你提到的NoSQL数据库。感谢您提供有关MongoDB的提示!想一种在CouchDB中构建数据的方法,然后将其发布在CouchDB用户列表(查找)中并征求意见-它们非常有用