Datenbanken Synchronisieren

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Fuselmeister, 11. September 2013 .

  1. 11. September 2013
    Hi
    ich stehe vor volgendem Problem. Ich hab auf einen Server eine Datenbank und ein Abbild davon auf nem Handeren Gerät (Tablet o.Ä.). Auf dem Server und dem Gerät können simultan Änderungen durchgeführt werden.
    Zu bestimmten Zeiten sollen die Datenbanken synchronisiert werden, sodass alle Änderungen auf beiden Geräten übernommen werden.

    Jetzt ist die Frage: wie stellt man das am besten an? Änderungen von Einträgen sind ja nicht das Problem, da kann man ja einfach nen Timestamp dranhängen und dann gucken was aktueller ist.
    Problematisch ist das aber bei neuen Einträgen, da in dem Fall IDs doppelt vergeben werden können und so Verknüpfungen mit anderen Einträgen nicht mehr stimmen.

    Mir fällt dazu nichts ein wie man das am besten lößt. Evtl kann man ja die IDs nicht klassisch per AutoIncrement erzeugen, sondern irgendwie nen HashCode aus TimeStamp und Content erzeugen. Gibt es da eventuell bessere Lösungen?

    Gruß
    Fuselmeister
     
  2. 11. September 2013
    AW: Datenbanken Synchronisieren

    Am einfachsten wäre es, eine gemeinsame Datenbank zu verwenden. Spricht etwas dagegen, dass das Tablet per Remote auf die Server-DB zugreift?

    Ansonsten wird das ganze glaube ich ziemlich aufwändig, weil du jede Zeile in jeder Tabelle der Datenbank A mit der entsprechenden Tabelle in Datenbank B vergleichen müsstest.

    Vielleicht kannst du auch einfach automatisiert die Dumps hin- und herschieben und jeweils importieren, bin aber grad nicht sicher wie das dann mit den Keys läuft.
     
    1 Person gefällt das.
  3. 11. September 2013
    AW: Datenbanken Synchronisieren

    Daran hab ich zunächst auch gedacht. Aber dann muss ja zwingend eine Internetverbindung bestehen und das wollte ich vermeiden. Das ganze sollte auch autonom lauffähig sein und dann je nach internet verfügbarkeit abgeglichen werden.
     
  4. 11. September 2013
    Zuletzt bearbeitet: 11. September 2013
    AW: Datenbanken Synchronisieren

    Dafür könntest du clientseitig einen Cache basteln, z.B. mit HSQL , wenn das Projekt Java-basiert ist. Wenn neue Daten eingefügt werden und keine Internetverbindung besteht, wandert alles in den Cache. Sobald der Server erreichbar ist, wird alles übertragen und der Cache gelöscht. Beim Lesen/Anzeigen der Daten auf dem Client müssten dann sowohl Server als auch Cache berücksichtigt werden.

    // Das löst aber nicht das Problem dass man nichts anzeigen kann wenn der Server nicht erreichbar ist... dafür könntest du vielleicht Replikation verwenden: MySQL 5.5: Master-Slave-Replikation | StefanKonarski.de
     
  5. 11. September 2013
    AW: Datenbanken Synchronisieren

    Jo danke, ich werd mir das mal angucken
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.