是否有可能在服務器上使用Android上的SQLite和NoSQL數據庫(如MongoDB),並在兩者之間進行雙向數據複製/同步?或者最好是兩端都使用SQL,或者兩端都使用SQL,但不能混合使用?Android和MongoDB上的SQLite同步
回答
有幾種不同的方法來考慮:
1)使用在Android +服務器都實現了多主或MVCC(多版本併發控制)和運行一個數據庫產品。 MVCC wikipedia page上有一些例子,CouchDB是一個常用的解決方案。有一個TouchDB-Android端口,它已經過優化,可在Android上運行並支持複製到CouchDB。
2)您的要求可能很簡單(或獨特),足以保證您自己的解決方案。常見的解決方案是在Android上使用SQLite,並通過(可能是RESTful)API將信息同步到遠程服務器。
在移動設備和服務器上使用相同的數據庫解決方案並不重要,但使用類似的模式和查詢語言可能會讓您更加安心。
也值得關注[PouchDB](http://pouchdb.com/),它是一個實現CouchDB API的JavaScript庫。 PouchDB旨在保存更改,而Internet訪問處於脫機狀態,然後在線時與CouchDB服務器同步。目前(2013年5月),這仍處於「預覽版」發佈階段,但一般方法非常有前途。 – Stennie
你可能想看看SymmetricDS,我沒有用過它,但我正在考慮它。
它目前允許Android上的SQLite數據庫同步到mongoDB後端,但目前不在其他方向。顯然,您可以將必要的同步數據創建到中間同步數據庫中,以便它可以返回到SQLite數據庫。
這裏還有一個iOS版本。
它有一個GPL許可證,所以如果你在商業上使用它,你需要支付(除非你的應用程序是開源的)。
- 1. 同步SQLite Android
- 2. android sqlite雙向同步sqlite
- 3. Android上的SQLite數據庫,多線程,鎖和帳戶同步
- 4. 同步android sqlite數據庫
- 5. sqlite同步
- 6. Mongodb oplog同步
- 7. Asp.net上的MongoDB:安全同步寫入
- 8. 雖然同步的SQL服務器和android的sqlite:我得OutOfMemoryError
- 9. Android本地SQLite與Firebase同步
- 10. 如何將SQLite從PC同步到Android
- 11. Android雙向sqlite數據庫同步
- 12. mongodb和Elasticsearch的初始同步
- 13. MySQL和MongoDB之間的數據同步
- 14. 同步Android的SQLite數據庫和GAE數據存儲
- 15. SQLite在線同步
- 16. SQlite同步方案
- 17. iPhone的sqlite與dekstop/mac上的sqlite同步
- 18. 同步MongoDB實例
- 19. 同步寫入MongoDB
- 20. getter上的volatile和setter上的同步與synchronized上的同步?
- 21. lockCanvas和同步的Android
- 22. 同步與MySQL SQLite的
- 23. 同步到MYSQL的SQLite
- 24. 如何在Android SQLite和SQL Server之間進行雙向同步
- 25. 同步SQLite和MySql在一起
- 26. 將Android上的sqlite數據庫同步到服務器上的Sybase數據庫
- 27. Mongoose和MongoDB,與關係不同步
- 28. Android localDB和serverDB同步
- 29. Android 2d和3d同步化
- 30. Android和網站同步
不同數據庫(例如SQLite和MongoDB)之間的雙向數據複製/同步可能是您必須自行開發的解決方案。數據同步的實際用例是什麼?如果Android和服務器上的相同數據發生更改,則完全雙向複製需要某種形式的衝突解決方案。也許您正在考慮一種緩存策略,用戶可以在脫機狀態下在其Android設備上進行更改/查詢,然後在聯機時與服務器同步數據? – Stennie
是的,最初它將是單一設備和服務器之間的緩存策略,只能在設備上修改數據,而不能在服務器上修改數據。所以,本質上,服務器將是一個備份。最終,我會想同步多個設備,這些設備都可以訪問和修改共享數據。這很可能在衝突解決將變得至關重要時。考慮Martin Fowler的事件採購模式。從來沒有嘗試過這種事情,我擔心由於SQL - > NoSQL不匹配而導致的潛在問題。 –