Thread Ordnerstruktur in DB abbilden - evt. eigene DB (File) schreiben?
(34 answers)
Opened by lousek at 2011-02-24 00:10
Hallo Lousek,
2011-02-24T23:45:40 lousek Ich dachte eher an das Feld LASTVERIFIED, das bei jeder Synchronisation aktualisiert werden soll. Wenn Dein beschriebenes Verfahren auch bei größeren Datenmengen funktioniert, ist es gut. Sonst würde ich noch folgende Alternative sehen, die umgekehrt zu Deinem Verfahren funktioniert und den Abgleich der Datenbank überlässt: Das Synchronisationsscript liest das gesamte Dateisystem aus und schreibt es in eine zweite Datenbanktabelle (T_LS_TMP) mit gleicher Struktur wie die eigentliche Tabelle (die vielleicht T_LS heißt), wobei FIRSTDETECTED und LASTVERIFIED beide auf (jetzt) gesetzt werden. Nun folgen drei SQL-Statements: Code: (dl
)
1 UPDATE Code: (dl
)
1 INSERT INTO Und wenn das alles geklappt hat Code: (dl
)
DELETE FROM T_LS_TMP; Das SQL ist ungetestet und nur beispielhaft gemeint, Du wirst es noch an Dein RDBMS anpassen müssen. Auch die Vergabe der ID, so sie verwendet werden soll, habe ich erstmal ausgeblendet. Bei Deinem wie bei diesem Verfahren muss einmal der gesamte Datenbestand zwischen Anwendung und DB transferiert werden. Ob eine der beiden Richtungen wesentlich schneller ist als die andere, kann ich nicht voraussagen (andere aber vielleicht schon, sonst bleibt nur probieren). Darüber, ob man ganz im Allgemeinen derartige Aufgaben in der Anwendung oder in der Datenbank erledigen soll, kann man trefflich stundenlang streiten. Ich gehöre eher zu denen, die eine Datenbank schon gern mal schuften lassen. HTH Grüße payx Edit: An das erste SQL angefügt: and LASTVERIFIED = (SELECT max(LASTVERIFIED) FROM T_LS);. Sonst würden gelöschte und wieder neu angelegte Verzeichnisse doppelt erscheinen. (Besser wäre es übrigens, die Synchronisationsdatumswerte in einer eigenen Tabelle zu verwalten.) Last edited: 2011-02-25 10:14:47 +0100 (CET) |