Analizar y comparar datos usando Coldfusion y MySQL

Primero, explicaré lo que necesito hacer, luego cómopensar Puedo lograrlo Mi plan actual parece muy ineficiente en teoría, por lo que mi pregunta es si hay una mejor manera de lograrlo.

Tengo 2 tablas: llamémoslas 'Productos' y 'Productos_Temp', ambas son idénticas. Necesito descargar una gran cantidad de archivos (XML o XLS) que contienen detalles del producto (stock, precios, etc.) de los proveedores. Luego se analizan en la tabla Products_Temp. En este momento, planeo usar las tareas programadas de CF para manejar la descarga, y Navicat para hacer el análisis real. Me alegra que esto sea lo suficientemente adecuado y eficiente.

El siguiente paso es donde estoy luchando: una vez que el archivo se haya descargado y analizado, debo buscar cualquier cambio en los datos. Esto será comparado con la tabla de Productos. Si se encuentra un cambio, entonces esa fila debe agregarse o actualizarse (si se debe eliminar, entonces tendré que marcarlo en lugar de simplemente borrarlo). Una vez que se hayan comparado todos los datos, se debe vaciar la tabla products_temp.

Soy consciente de los métodos para comparar tablas y sincronizarlas en consecuencia, sin embargo, el problema que tengo es el hecho de que manejaré múltiples archivos de diferentes fuentes. Había considerado usar solo la tabla de productos y agregar / actualizar, pero no estoy seguro de cómo podría administrar el requisito de 'marca eliminada'.

En este momento, la única manera en quesaber Puedo hacer que funcione es recorrer la tabla products_temp, hacer varios cfquerys y eliminar la fila una vez que esté completa. Sin embargo, eso parece increíblemente ineficiente, y dado el hecho de que es probable que estemos tratando con cientos de miles de filas, es poco probable que sea efectivo si actualizamos todo a diario.

Cualquier puntero o consejo sobre una mejor ruta sería apreciado!

Respuestas a la pregunta(3)

Su respuesta a la pregunta