Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Konzeption von Synchronisation/Replikation von Daten(banken) (https://www.delphipraxis.net/69123-konzeption-von-synchronisation-replikation-von-daten-banken.html)

Riese 10. Mai 2006 14:48


Konzeption von Synchronisation/Replikation von Daten(banken)
 
Hallo zusammen,

für ein Projekt muss ich folgendes realisieren:

1. Es gibt ein oder mehrere abgesetzte Clients auf unterschiedlichen PCs. Diese laufen unabhängig voneinander.
Regelmässig wird eine Internetverbindung aufgebaut und die Clients kommunizieren mit dem Server.

2. Es können auch auf dem Server Daten eingegeben werden.
Nehmen wir der Einfachkeit halber Kundendaten.

Meine Frage ist nun wie kann die Synchronisation ablaufen.
Ich will es nicht technisch wissen, sondern konzeptionell.

Man unterscheidet
a) Neu anlegen von Kunden (NEW)
b) Ändern von Kundendaten (UPD)
c) Löschen von Kunden (DEL)

Ich habe mir folgende Varianten/Konzepte überlegt:

I.) Jeder neue Eintrag bekommt zusätzlich in einer Art "todo" Tabelle ein Hinweis dass dieser Datensatz verändert ist. Meldet sich nun ein anderer Teilnehmer am Server an, durchsucht er die todo Liste und weiß z.B. NEW #4, UPD #10, DEL #15.
Wenn er die Daten abgeholt hat, löscht er die todo Liste.
Nachteil: Sehr aufwändig und jeder Client bräuchte eine eigene Todoliste.

II.) Oder es gibt keine zusätzlichen Tabellen und bei jedem Eintrag in der Kundenliste gibt es eine Spalte Zeitstempel. Bei jeder Änderung / Neu hinzufügen wird auf dem Server der Zeitstempel aktualisiert.
Die Clients merken sich wann sie das letzte Mal synchronisiert haben und können so sehen dass der Datensatz sich verändert hat/neu dazugekommen ist.
Aber was ist wenn man auf dem Server einen Kunden löscht? Dann fehlt ja dieser Eintrag auf dem Server, der Client bekommt nicht mit dass der Satz fehlt und das sync. klappt nicht mehr.
Man dürfte also nichts mehr löschen sondern den Satz nur als "GELÖSCHT" kennzeichnen.

Was habt ihr noch für Ideen/Konzepte?

Gruß
Riese

Bernhard Geyer 10. Mai 2006 20:56

Re: Konzeption von Synchronisation/Replikation von Daten(ban
 
Welche Datenbank(en) soll den eingesetzt werden? Viele bieten von sich aus Replikation und wenn Du einige Spielregel beachtest bekommst Du den schwierigen Teil der Replikation vom DBMS "geschenkt".

Riese 11. Mai 2006 12:14

Re: Konzeption von Synchronisation/Replikation von Daten(ban
 
Zitat:

Zitat von Bernhard Geyer
Welche Datenbank(en) soll den eingesetzt werden? Viele bieten von sich aus Replikation und wenn Du einige Spielregel beachtest bekommst Du den schwierigen Teil der Replikation vom DBMS "geschenkt".

Also das ist noch nicht 100%ig klar.
Wahrscheinlich MySQL oder (T)DBF (DBase).

Hat jemand eine Idee wie das laufen könnte mit der Replikation.
das Problem müssten doch eigentlich schon mehrere gehabt haben.

Gruß in die Ferne
Riese

Riese 11. Mai 2006 13:22

Re: Konzeption von Synchronisation/Replikation von Daten(ban
 
Ein Nachtrag:

Vielleicht werden wir auch eine Firebird Datenbank einsetzen.
Gibt es da auch so eine automatische Replikation?

Gruß
Riese

Sir Rufo 11. Mai 2006 14:08

Re: Konzeption von Synchronisation/Replikation von Daten(ban
 
Mach doch eine Kombination aus beiden Ansätzen!

Eine Update-Tabelle mit einem Zeitstempel. Dann bekommst Du alle Informationen die Du brauchst und benötigst nur eine Tabelle.

cu

Oliver


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz