Analysieren und Vergleichen von Daten mit Coldfusion und MySQL

Zuerst erkläre ich, was ich tun muss und dann, wie ichdenken Ich kann es erreichen. Mein aktueller Plan scheint theoretisch sehr ineffizient zu sein, daher frage ich mich, ob es einen besseren Weg gibt, ihn zu verwirklichen.

Ich habe 2 Tabellen - nennen wir sie "Produkte" und "Products_Temp", beide sind identisch. Ich muss eine große Anzahl von Dateien (XML oder XLS) herunterladen, die Produktdetails (Lagerbestand, Preise usw.) von Lieferanten enthalten. Diese werden dann in der Products_Temp-Tabelle analysiert. Derzeit plane ich, den Download mithilfe von CF Scheduled Tasks und das eigentliche Parsing mithilfe von Navicat durchzuführen. Ich bin froh, dass dies ausreichend und effizient genug ist.

Der nächste Schritt ist der, mit dem ich zu kämpfen habe. Nachdem die Datei heruntergeladen und analysiert wurde, muss ich nach Änderungen in den Daten suchen. Dies wird mit der Tabelle "Produkte" verglichen. Wenn eine Änderung gefunden wird, sollte diese Zeile hinzugefügt oder aktualisiert werden (sollte sie entfernt werden, muss sie markiert werden, anstatt nur gelöscht zu werden). Nachdem alle Daten verglichen wurden, sollte die Tabelle products_temp geleert werden.

Ich kenne Methoden, um Tabellen zu vergleichen und entsprechend zu synchronisieren. Mein Problem ist jedoch, dass ich mehrere Dateien aus verschiedenen Quellen verarbeiten werde. Ich habe überlegt, nur die Produkttabelle und das Anhängen / Aktualisieren zu verwenden, bin mir jedoch nicht sicher, wie ich die Anforderung "Flag gelöscht" handhaben kann.

Im Moment ist der einzige Weg, den ichkennt Ich kann es zum Laufen bringen, indem ich die Tabelle products_temp durchlaufe, verschiedene cfquerys durchführe und die Zeile lösche, sobald sie fertig ist. Dies scheint jedoch unglaublich ineffizient zu sein, und angesichts der Tatsache, dass es sich wahrscheinlich um Hunderttausende von Zeilen handelt, ist es unwahrscheinlich, dass dies effektiv ist, wenn wir alles täglich aktualisieren.

Alle Hinweise oder Ratschläge zu einer besseren Route wäre dankbar!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage