Bookmarks

Yahoo Gmail Google Facebook Delicious Twitter Reddit Stumpleupon Myspace Digg

Search queries

192.168.1.41:8000, Www.xxxcon., %s wwwxxxcon, %s wwwxxxcon, www.xxxcon, xxxxdup, bitlord outgoing port settings, ckowwwxxx, 192.168.1.41:8000/nor-482.html, php.ini "Unable to initialize module"

Links

XODOX
Impressum

#1: Access - MySQL Datenbanken synchronisieren

Posted on 2008-04-21 19:45:45 by Richard Ohl

Moin,

vielleicht könnt ihr mir mit ein paar Anregungen helfen. Ich würde gern zwei
Datenbanken miteinander synchronisieren. Das geschieht momentan mit
eval'detem Code, der per cURL mit Zertifikat vom Offline- auf den
Online-Server und zurück transferiert wird. Das Ding ist so stark
gewachsener, prozeduraler Code, dass ich das gern neu schreiben würde (hm,
genauer: muss...). Ich bin an ein paar Anregungen interessiert, wie ihr das
vielleicht schon mal gelöst habt und bin gespannt, welche Kommentare und
Kritik ihr an meinen nachfolgenden Grundüberlegungen hegen mögt.
Ich werde versuchen, dass nachfolgend so kurz wie möglich zu skizzieren:

MS Access Seite: (ja, ich weiÃč, war eine politische Entscheidung und kann
vorerst nicht abgelöst werden)
Tabelle 1: id, onlineid, X1 (Typ text), X2 (Typ Yes/No), X3 (Double), X4
(datetime), X5 (Memo)

MySQL Seite (momentan):
id, offlineid, yes/no usw. sind integer, datetime ein varchar, und das Memo
ein entsprechendes blob-Feld. Da werde ich im Zuge des Umbaus sicher ein
paar Veränderungen vornehmen... Allerdings kann es sein, dass X3 in der
anderen Datenbank K98 heiÃčt (oder einen anderen bescheuerten Beispielnamen
hat).

Zum Vorgehen:
Ich möchte, auch auf der offline-Seite, gern PHP nutzen, weil ich keine
andere Sprache besser beherrsche als PHP - wie gut oder schlecht das nun am
Ende ist sei mal dahingestellt. Dazu kommt noch, dass ich momentan auf PHP 4
festgelegt bin, bis PHP 5 dauert es hier noch ein bisschen...

Ich hatte jetzt überlegt, per PHP und ODBC auf die Access-DB zuzugreifen und
die MySQL-Tabellen in der selben Access-DB über MyODBC zu verlinken. Dann
hätte ich in PHP nur einen Ressource-Identifier, mit dem ich alle benötigten
Abfragen behandeln könnte. Soweit, so gut?

Ãänderungs-/Konfliktmanagement:
Generell wäre es hier so, dass ich bei Konflikten gern ein manuelles Merge
veranlassen möchte, dass also ein Mensch beide Datensätze abgleicht -
solange würde ich bei gleichzeitig geänderten Datensätzen in beiden DB's
(das kommt selten vor) den betreffenden Datensatz per Lock-Tabelle von der
Synchronisation ausschlieÃčen. Für alle geänderten Sachen: Ich denke, dass es
unhandlich wird, Access das Führen eines Logbuchs bei Ãänderungen in
einzelnen Feldern beizubringen. Da fände ich es fast schlauer, beide
Datensätze in ein Array zu lesen und das dann zu vergleichen - oder?
Natürlich würde ich vorher prüfen, ob der Datensatz seit dem letzten Lauf
überhaupt geändert wurde - aber inperformant scheint mir das trotzdem
irgendwie. Habt ihr Vorschläge dafür?

Ich schlieÃče erst einmal - Ergänzungen kann es dann ja in der Diskussion
geben, wo nötig. Hoffentlich liest überhaupt noch jemand dclpd...

Vielen Dank!
Richard

--
If you're never scared or embarrassed or hurt, it means you never take any
chances. -- Julia Sorel

Report this message