Sincronizar datos entre dos base de datos con la misma estructura

publicado por: Anonymous

Necesito pasar los datos de una base de datos a otra con la misma estructura, el problema es que ambas base de datos están en uso, en ambas se pueden insertar registros diferentes y están en lugares diferentes.

Por ej.: en la DB1 ingresamos una factura del cliente1, en la DB2 se ingresa la factura del cliente2 y necesitamos que en la DB2 este la factura del cliente1 y cliente2.

El problema que tenemos se da por los ID, que al insertar sin el ID los datos de la cabecera de la factura (tabla: facturas_venta) para que no muestre error de ID duplicado luego no podemos insertar el detalle (tabla: facturas_venta_detalle) porque no tenemos el ID y tenemos que modificar la consulta a mano.

Estoy buscando una manera más práctica de pasar los datos que tener que armar un ETL por cada tabla que inserte sin el ID, y luego en cada tabla relacionada resuelver el nuevo ID para poder insertar los datos.

¿Hay alguna forma de hacerlo fácil sin tener que crear un ETL por cada tabla de esta manera, con alguna herramientas u otra forma de hacerlo?

solución

Otra manera es no usar un ID autonumérico para estos casos. Las bases de datos permiten poner claves basadas en registros de texto y/o tener claves compuestas. De hecho usar ID numérico cuando ya existe un campo que determina funcionalmente es innecesario.

De hecho las facturas ya tienen que tener un número distinto al momento de imprimirlas (esto puede lograrse prefijando un número de “punto de venta” o “Número de talonario” O “id de sucursal”).

Entonces se puede tener como clave primaria compuesta (sucursal, número).

Si estás usando un framework que sí o sí necesita que sea un solo campo y que sea numérico, se puede preasingar números pares para una base e impares para la otra (o algo similar).

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *