aloah,
ich bin auf der suche nach einer brauchbaren lösung für folgendes problem:
ich erhalte daten von extern (Excel/Access/SQL/csv/etc.pp). diese daten werden extern gepflegt, bearbeitet, aktualisiert. auf diesen vorgang habe ich keinen zugriff, d.h. ich kann ihn nicht beeinflussen. und ich weiss in der regel nicht, ob - und wenn ja, welche - datensätze sich geändert haben.
diese externen daten landen bei mir in einer extra angelegten mysql-db, durchlaufen dann ein script, das den ganzen sums aufbereitet und speziell formatierte textdateien (ASCII) auf die Platte schreibt. diese textdateien sind mit einer anderen software verknüpft (auf die ich keinen einfluss habe), die anhand des dateidatums prüft, ob sich eine datei geändert hat oder nicht. ist das dateidatum verändert, wird die verknüpfung aktualisiert, was unter umständen auswirkungen auf die letztendliche verarbeitung haben kann.
so, mir geht es also darum, NUR die textdateien zu aktualisieren, die sich wirklich geändert haben.
ich hab bislang 2 lösungsansätze:
a) bevor ich den dateiinhalt in die datei schreibe, lese ich dei bestehende datei aus, mache einen stringvergleich und schreibe die daten, wenn ein unterschied besteht.
b) ich speichere in einer eigenen tabelle eine id für den datensatz und einen hash (md5/sha1) des inhaltes, erzeuge im durchlauf einen hash der neuen inhalte, vergleiche den und schreibe die daten, wenn ein unterschied besteht.
(b) finde ich prickelnder, bin mir aber nicht sicher, ob das wirklich bei 300 - 1000 datensätzen hinhaut. aber vielleicht hat ja jemand noch eine andere idee.
ich bin auf der suche nach einer brauchbaren lösung für folgendes problem:
ich erhalte daten von extern (Excel/Access/SQL/csv/etc.pp). diese daten werden extern gepflegt, bearbeitet, aktualisiert. auf diesen vorgang habe ich keinen zugriff, d.h. ich kann ihn nicht beeinflussen. und ich weiss in der regel nicht, ob - und wenn ja, welche - datensätze sich geändert haben.
diese externen daten landen bei mir in einer extra angelegten mysql-db, durchlaufen dann ein script, das den ganzen sums aufbereitet und speziell formatierte textdateien (ASCII) auf die Platte schreibt. diese textdateien sind mit einer anderen software verknüpft (auf die ich keinen einfluss habe), die anhand des dateidatums prüft, ob sich eine datei geändert hat oder nicht. ist das dateidatum verändert, wird die verknüpfung aktualisiert, was unter umständen auswirkungen auf die letztendliche verarbeitung haben kann.
so, mir geht es also darum, NUR die textdateien zu aktualisieren, die sich wirklich geändert haben.
ich hab bislang 2 lösungsansätze:
a) bevor ich den dateiinhalt in die datei schreibe, lese ich dei bestehende datei aus, mache einen stringvergleich und schreibe die daten, wenn ein unterschied besteht.
b) ich speichere in einer eigenen tabelle eine id für den datensatz und einen hash (md5/sha1) des inhaltes, erzeuge im durchlauf einen hash der neuen inhalte, vergleiche den und schreibe die daten, wenn ein unterschied besteht.
(b) finde ich prickelnder, bin mir aber nicht sicher, ob das wirklich bei 300 - 1000 datensätzen hinhaut. aber vielleicht hat ja jemand noch eine andere idee.
Kommentar