Synchronisation einer Datenbank

  • 7 Antworten
  • Letztes Antwortdatum
kleinerkathe

kleinerkathe

Dauer-User
242
Hallo,

was ist die denkbar einfachste Möglichkeit für einen Nutzer eine Datenbank zwischen zwei Devices zu synchronisieren.

Szenario: User A hat ein Phone und ein Tablet, auf beiden Geräten jeweils die gleiche App. Jetzt soll bei beiden Apps der gleiche Datenbestand vorhanden sein. Nach Möglichkeit ohne einen komplett eigenen Webservice/Webserver hinstellen zu müssen.

Bisher finde ich "nur" solche Vorschläge: android - How to sync data between different devices - Stack Overflow

Die Datenbank komplett auf die Dropbox jedes mal zu syncen ist denkbar unsinnig. Aber einen eigenen Webservice zu implementieren auch...

Hat schon mal jemand die Dropbox Datastorage API verwendet und kann mir da über Einschränkungen/Probleme berichten? Den das(!) klingt circa nach dem was ich ohne großen Aufwand möchte :)

Oder kennt noch jemand andere Möglichkeiten? :)
 
Nein ich kenne keine Datenbank, aber ohne gemeinsame Datenbank kann das ziemlich kompliziert werden.
Was passiert wenn sich beide Datensätze ändern? Oder eine wird geändert und einer gelöscht?
Dann überlegen wir mal der Benutzer bekommt noch ein drittes Gerät. Zetzt müssten schon 3 Datenbanken abgeglichen werden mit 3 unterschiedlichen Daten...

Klingt erst einmal sehr Benutzer unfreundlich in meinen Ohren.

Was genau willst du denn für Daten austauschen?

LG. Dagobert

Gesendet von meinem GT-I9300 mit der Android-Hilfe.de App
 
Warum Benutzerunfreundlich? Als Identifier nehm ich nicht den primarykey sondern einen eigenen generierten (bspw. aus Zeit in ms + Titel des Eintrages --> um eine Kollision zu verursachen müsste man dann auf beiden Geräten gleichzeitig im ms-Bereich einen Eintrag mit dem gleichen Titel hinzufügen... Nehme ich noch einen Random()-Wert hinzu oder sonstige "Variablen" wird die Wahrscheinlichkeit noch geringer) und gleich die Teile dann selbst ab :)

Es geht erstmal nur um zwei Tabellen: Einmal eine Reihe an Strings (=Kategorien), einmal eine Reihe an Einträgen, sagen wir mal Notizen (Notiz hat einen Titel, Text, Datum und gehört in eine Kategorie)

Ich denke ich schau mir die Datastorage API näher an und werde dann ggf. berichten ob das für so ein Szenario passend ist :)
 
Ja aber der Benutzer muss dann ja immer noch entscheiden was mit den Daten passiert, wenn sich beide ändern? Oder lässt du die eine Änderung einfach unter den Tisch fallen?

Beispiel Exceldatei: Ich bennen auf beiden Geräten eine Kategorie (Namen ungleich) um... was passiert?

lg. Dagobert
 
gegenfrage: Was mache ich bei einer online Datenbank beim gleichen Fall? ;) (also Umbenennung einer Kategorie auf beiden Geräten unterschiedlich) ... Ein Webservice alleine löst solche Probleme auch nicht :(
 
Doch im den Fall ist es klar :D

Weil ich immer nur ein "Status" habe oO
Entwerder Grün oder Rot, aber nicht irgendwo GrünRot :D

lg.
 
Okay, ich ändere jetzt auf Gerät A und Gerät B die Bezeichnung der Kategorie (jeweils unterschiedlich). Jetzt gehe ich mit beiden Geräten kurz nacheinander online. Erste Aktualisierung wird so sein, dass (im Falle das Gerät A schneller synchronisiert) die Änderung von A eingespielt wird. Danach versucht B einzuspielen, was passiert? ;)

Man sollte dazu noch eine weitere Spalte haben in der ein timestamp der letzten Änderung gespeichert ist und wonach entschieden werden kann, welche Änderung aktueller ist :)

Wie gesagt, so ein Problem wird auch nicht durch einen eigenen Webservice gelöst...
 
Nur noch als kleine Anreiz kann ich dir https://parse.com/ an Herz legen für kleine preojekte. Es ist für die ersten 1.000.000 Requests pro Monat kostenlos und es erspart einem wirklich viel Webserver/Datenbank Gedöns am Anfang.
parse.com bietet dir die Möglichkeit eine Datenbank anzulegen, jedem Device einen User zuzuordnen und in der Datenbank UserContent anzulegen. Außerdem hast du noch die einfache Möglichkeit mit Pushs zu arbeiten.

Nur so als kleine Hilfe für den Anfang.
 
Zuletzt bearbeitet:
Zurück
Oben Unten