Analizuj i porównuj dane za pomocą Coldfusion i MySQL

Najpierw wyjaśnię, co muszę zrobić, a potem jakmyśleć Mogę to osiągnąć. Mój obecny plan wydaje się teoretycznie bardzo nieefektywny, więc moje pytanie brzmi, czy istnieje lepszy sposób na osiągnięcie tego.

Mam 2 tabele - nazwijmy je „produktami” i „produktami”, oba są identyczne. Muszę pobrać dużą liczbę plików (XML lub XLS), które zawierają szczegóły produktów (zapasy, ceny itp.) Od dostawców. Są one następnie analizowane w tabeli Products_Temp. W tej chwili planuję użyć zaplanowanych zadań CF do obsługi pobierania, a Navicat do wykonania rzeczywistego parsowania - jestem wystarczająco szczęśliwy, że jest to wystarczające i wystarczająco wydajne.

Następnym krokiem jest to, gdzie walczę - po pobraniu i przeanalizowaniu pliku muszę poszukać zmian w danych. Zostanie to porównane z tabelą Produkty. Jeśli zostanie znaleziona zmiana, ten wiersz powinien zostać dodany lub zaktualizowany (jeśli powinien zostać usunięty, to muszę go oznaczyć, a nie tylko usunąć). Po porównaniu wszystkich danych należy opróżnić tabelę products_temp.

Wiem o metodach porównywania tabel i ich odpowiedniej synchronizacji, jednak mam problem z tym, że będę obsługiwał wiele plików z różnych źródeł. Zastanawiałem się nad użyciem tylko tabeli produktów i dołączeniem / aktualizacją, ale nie jestem pewien, jak zarządzać wymaganiem „usunięta flaga”.

W tej chwili jedyny sposóbwiedzieć Mogę sprawić, żeby działało, przechodząc przez tabelę products_temp, robiąc różne cfquerys i usuwając wiersz po zakończeniu. Wydaje się to jednak niewiarygodnie nieefektywne, a biorąc pod uwagę fakt, że mamy do czynienia z setkami tysięcy wierszy, mało prawdopodobne jest, aby były skuteczne, jeśli codziennie aktualizujemy wszystko.

Wszelkie wskazówki lub porady dotyczące lepszej trasy będą mile widziane!

questionAnswers(3)

yourAnswerToTheQuestion