2016-04-22 10 views
2

Ich entwickle eine Hybrid-App mit Ionic. Momentan verwende ich sqLite (relational), da ich von einem MySQL-Hintergrund komme.Ionic: sqLite & PouchDB oder NoSQL

Da ich meine Datenbank ziemlich häufig synchronisieren muss (normalerweise nach jeder Änderung - entweder in der App oder auf dem Server), suchte ich nach einer Lösung, bevor ich Zeit für die Erstellung meines eigenen Dienstes investierte (erfinde das Rad nicht neu).

Ich stieß auf ein nettes Tutorial von Nic Raboy (https://www.youtube.com/watch?v=erQMOUcAdXk), wo er erklärt, wie man PouchDB für die einfache Synchronisierung verwendet.

So weit so gut - aber ich konnte noch nicht herausfinden, ob und wie ich PouchDB mit meiner bestehenden sqLite-Datenbank verwenden kann oder ob ich komplett auf eine NoSQL-Datenbank umstellen muss.

Falls ich zu NoSQL wechseln muss, habe ich die nächste Ausgabe: Wie muss ich meine "Relationen" in einer NoSQL-Datenbank entwerfen?

Lassen Sie mich im Detail fragen:

ich eine SQL-Anweisung haben zum Abrufen von Daten aus zwei oder mehreren Tabellen wie folgt aus:

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 

oder dieses:

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 

Gibt es eine Möglichkeit, einige Abfragen auszulösen, die genau dasselbe tun, wenn ich NoSQL verwende? Ich habe Google seit ungefähr einem Tag verwendet und bin auf keine Lösung gestoßen.

Vielen Dank im Voraus für Ihre Hilfe!

Antwort

3

Zu Ihrer ersten Frage:

So weit so gut - aber ich konnte noch nicht herausfinden, ob und wie kann ich meine bestehende SQLite-Datenbank verwenden PouchDB mit oder wenn ich ganz auf eine NoSQL-Datenbank wechseln

Sie können nur mit einer Datenbank synchronisieren, die das gleiche Synchronisierungsprotokoll verwendet. Das würde einer von diesen sein:

Ihre Die zweite Frage ist sehr allgemein. Sie müssen sich mit der Strukturierung von Daten in JSON-Dokumenten und den Unterschieden zu relationalen Datenbanken befassen. Es ist eine andere Welt und du wirst etwas Zeit damit verbringen müssen, also lies weiter.

Das ist das Gleiche, wenn Sie MongoDB verwenden würden (das kann nicht synchronisiert werden, wird aber häufiger als CouchDB verwendet, so dass Sie hilfreiche Artikel finden könnten, die für Mongo geschrieben wurden).

Das Strukturieren von Lerndaten für JSON-Dokumente und das Abfragen von CouchDB dauert einige Zeit. Aber es lohnt sich, wenn Sie die Synchronisierung benötigen. Keine andere Datenbank kann in dieser Hinsicht vergleichen.

+0

Hallo Alex! danke für deine erklärung! Ich denke, ich werde dann über NoSQL-Datenbanken lesen müssen, wie Sie erwähnt haben. Danke für den Tipp bezüglich MongoDB! –

+0

überlege dir, wie du deine Daten in CouchDB strukturierst, poste diese dann in der CouchDB-Benutzerliste (schau auf http://couchdb.apache.org nach) und frage nach Meinungen - sie sind sehr hilfreich – Alex