2016-04-22 57 views
2

我正在開發與Ionic混合應用程序。 目前我正在使用sqLite(關係),因爲我來自MySQL背景。因爲我需要很頻繁地同步我的數據庫(通常在每次更改後 - 無論是在應用程序還是在服務器上),我都在尋找一些解決方案,然後投入時間創建自己的服務(不要重新發明輪子)。Ionic:sqLite&PouchDB或NoSQL

我遇到了Nic Raboy的一個很好的教程(https://www.youtube.com/watch?v=erQMOUcAdXk),他解釋瞭如何使用PouchDB進行簡單的同步。

到目前爲止這麼好 - 但我還是無法弄清楚是否可以將PouchDB與我現有的sqLite數據庫一起使用,或者我必須完全切換到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,那麼是否可以引發一些完全相同的查詢? 我大約1天后就開始使用Google,但沒有遇到任何解決方案。

在此先感謝您的幫助!

回答

3

關於你的第一個問題:

到目前爲止好 - 但我還沒有弄清楚,如果還是我該如何使用PouchDB與我現有的SQLite數據庫,或者如果我需要完全切換到的NoSQL數據庫

您只能與使用相同同步協議的數據庫進行同步。這將是其中之一:

你第二個問題很一般。您需要閱讀JSON文檔中的結構化數據以及關係數據庫的差異。這是一個不同的世界,你將不得不在這個上花點時間閱讀。

如果您使用MongoDB(它不能同步但比CouchDB更經常使用,因此您可能會發現爲Mongo編寫的有用文章),這也是一樣的。

學習JSON文檔的數據結構和查詢CouchDB需要一些時間。但是如果你需要同步,這當然是值得的。在這方面沒有其他數據庫可以比較。

+0

嗨,亞歷克斯! 感謝您的解釋! 我想我將不得不閱讀關於NoSQL數據庫的內容,正如你所提到的。感謝關於MongoDB的提示! –

+0

考慮一種在CouchDB中構建數據的方法,然後將其發佈到CouchDB用戶列表中(查看http://couchdb.apache.org)並徵求意見 - 它們非常有用 – Alex