Ankündigung

Einklappen
Keine Ankündigung bisher.

Synchronisation

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Synchronisation

    Hallo,

    ich möchte gern eine Synchronisation zwischen einer Online DB und einer DB auf einem Smartphone realisieren.

    Weiß nicht so recht wo ich anfangen soll um erstmal die Datensätze (unabhänig vom Inhalt) gleich zu halten.

    Bräuchte dazu mal eine Hilfestellung wie ich Anfangen soll dies zu planen.
    Gruß

    HCA

  • #2
    Welche eigenen Ideen bringst du denn mit ein? Konzepte werden hier nicht für dich erstellt, da muss ein bischen Eigenleistung kommen...

    Überleg dir einfach mal, was man für so etwas brauchen würde und schreibs auf. Stell deine Ansätze hier zur Diskussion.
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Die Einträge werden in 2 Datenbanken gespeichert ( Online , Phone )
      Die Datensätze kann ich ja schlecht über eine ID (PK) identifizieren, da diese sich auf beiden Geräten unterscheiden können.
      Gruß

      HCA

      Kommentar


      • #4
        Warum nicht?

        Beim Synchronisieren kommt es schon darauf an, zu einer bestimmten Zeit auf beiden Seiten den gleichen Datenbestand zu haben. Entweder als Ausgangbasis, oder durch eine erste Synchronisation zweier Datenquellen, struktuerelle Unterschiede musst du natürlich gesondert bedenken, eine gleiche Struktur ist auf jeden Fall empfehlenswert. Das gemeinsame Kriterium musst DU schaffen, Daten die auf einer Seite nicht existieren, musst du dort herstellen, darum gehts ja. Du wirst mit Sicherheit auch Metadaten benötigen, für dich selbst -> neue Tabellen in beiden Datenbanken.

        In deinem Fall handelt es sich um eine getrennte Synchronisation, die beiden Datenbanken verwalten ihre lokalen Daten autark und werden nur zu bestimmten Zeiten zusammengeführt. Also brauchen die Daten eine Versionskontrolle - allermindestens das Datum der letzten Änderung. Beim Sync müssen dann beidseitig vorhandene Daten anhand des Datums der letzten Änderung verglichen werden (wobei man hier noch beachten muss, das der gleiche Datensatz durchaus auf beiden Seiten geändert worden ist, Stichwort "merge"). Neue Daten werden jeweils kopiert, wie du mit gelöschten Datensätzen verfahren willst musst du dir auch überlegen.
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Das Ganze ist extrem kompliziert. Du must im Prinzip jede Änderung an den DB's, sowohl auf dem Phone als auch auf dem Server mitprotokollieren und dann beim Synchronisieren eine ziemliche Menge Logik einprogrammieren um das gewünschte Ergebnis zu erziehlen.

          Um das zu verdeutlichen mal ein kleines Beispiel.

          Du machst eine intiale Synchronisation von beiden Datenbanken. Nun hast du auf beiden Datenbank sagen wir 10 Datensätze.
          Der User löscht nun Datensatz Nummer 8 auf dem Phone. Gleichtzeit wird Datensatz Nummer 8 auf dem Server editiert. Was ist nun zu tun? Soll der Datensatz auf dem Server gelöscht werden oder der geänderte auf dem iPhone wieder aufgespielt?

          Es gibt dafür keine 100% Lösung und ich würde nach Möglichkeit immer versuchen eine Synchronistion zwischen zwei autoarken DB's zu umgehen.

          Gruß

          CLaus
          Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

          Kommentar


          • #6
            Es gibt keine hundertprozentig automatisierte Lösung, aber ein Konflikt kann (sollte) immer vom User gelöst werden - er muss entscheiden, ob er Datensatz 8 auch löschen oder wiederherstellen möchte (könnte ja auch aus Versehen gelöscht worden sein).

            Das Ganze ist extrem kompliziert
            Jo, da geb ich dir durchaus Recht, das ist kein einfaches Thema. Da es sich aber um ein Privatprojekt zu handeln scheint, könnte man Abstriche in der Funktionalität machen.
            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

            Kommentar


            • #7
              Wenn auf beiden Datenbanken unabhängig voneinander geschrieben wird, dann hast du das typische Multi-Master-Replication Problem. Darüber gibt es tausende Seiten an Forschungsliteratur. Im Endeffekt müsst du dich mehr oder weniger für zwei der drei Datenbankeigenschaften (CAP-Problem).
              https://blog.codecentric.de/files/2011/08/cap.png.
              Hier was zum lesen über das CAP-Theorem: https://blog.codecentric.de/en/2012/...cap-theorem-2/

              Da bekommst du dann auch gleich noch ganz fiese andere Probleme. Zum Beispiel musst du dann mit logischen Uhren arbeiten und all so ein krams. Also lieber was einfacheres versuchen . Zum Beispiel Master-Slave Synchronisierung. Multiple-Read, Single-Write etc. oder gleich nur eine zentrale Datenbank für deine Anwendungen.
              [IMG]http://media.ubuntuusers.de/portal/files/ubuntu.png[/IMG][IMG]http://sqlmanager.net/i/ico/mysql.gif[/IMG][SIGPIC][/SIGPIC]

              Kommentar


              • #8
                Solch eine Synchronisation ist ja wirklich schon ein hartes Pflaster. Da werd ich wohl noch ein bisschen mehr Arbeit investieren müssen.

                Danke bis hierher
                Gruß

                HCA

                Kommentar

                Lädt...
                X