Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/03/2008, 08:32
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Re: Insertar datos desde BackUp. ¿Cómo?

La base de datos central debería poder ingresar la información ed la sucursal simplemente almacenándola. Esto puede producir problemas si y sólo si las tablas a almacenar no tienen en cuenta que los ID de Clientes, Facturas, Caja, Cobranzas, Envíos, Remitos, Recibos, y el resto de las posibles tablas, deben poder identificarse como relacionadas a la sucursal y no a la empresa. La relación de los ID con la empresa se debería manejar en tablas terciarias que vinculen la info centralizada con cada sucursal.
A veces esto sucede cuando la base de la sucursal y la de la central son simples copias que comparten la misma estructura de diseño y de tablas. En ese caso el problema está en que el diseño de datos no fue preparado para soportar ese esquema de trabajo y la solución pasa por generar una aplicación que compense la situación. Me ha sucedido.
Si está preparado para un diseño de sucursales, entonces la suma de registros no debería generar situaciones de inconsistencia de datos. Lo único que debería hacerse es la verificación de los clientes, que debería manejarse con una tabla ternaria.
En el caso de que el volcado de datos a la central incluya la limpieza de los registros, solamente deberías recordar que truncar las tablas con ID autonumérico los inicializa a 0 en las InnoBD y mantiene el último Id en las MyISAM.

En cualquier caso la solución más rápida es generar un paquete con los datos y enviarlo a la central para que lo procesen. Que la solución de compensación la hagan en la central.
La otra opción, generar un enlace a la base y actualizar directamente, si bien puede ser buena idea, también puede generar más inseguridad en la transferencia (sobre todo si usas TCP/IP) y aumento del tiempo de procesamiento.