[Php-avanzado] Bucle de inserts
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Mar Dic 9 23:42:31 ART 2008
Hola Mauro,
El mar, 09-12-2008 a las 20:34 -0300, Mauro Giuffo escribió:
> Leo:
>
> voy a probar hacer un unico insert, pero ¿esta bien que inserte mas de
> 2.000 articulos en una unica consulta? podrian llegar a ser mas de
> 10.000 los que tenga que insertar.
Para eso están las bases de datos... si no fuera así, los vuelcos a
texto del propio motor no funcionarían luego para restaurar la DB!!!
> Lo que me parecio raro es que tarde tanto en hacer todos esos inserts,
> mientras que tarda menos de un segundo en levantar todos los datos del
> archivo de texto a un arreglo y despues mostrarlos por pantalla.
Eso depende de tantas cosas que ni arriesgo una explicación...
> Pregunta:
>
> ¿Como deberia hacer para luego altualizar la lista, para la segunda
> vez que suba el archivo de texto al sitio? Deberia hacer un select de
> cada articulo para saber si esta en la bd y de ahi hacer un insert o
> update segun este o no? Eso ya no se podria hacer en una unica
> consulta. O conviene hacer un truncate de la tabla e insertar todo
> junto nuevamente?
Lo más eficiente es hacer un delete from Tabla y volver a cargar...
pero esto no siempre se ajusta a las necesidades reales de un sistema.
El tema es que están planteando "sincronizar" 2 sistemas, y esto no es
un problema tan trivial como parece.
> En este caso perderia integridad la base porque si llegaran a faltar
> articulos en la nueva lista, los pedidos anteriormente generados
> podrian apuntar a articulos que ya no existen. Esto podria
> solucionarse guardando todos los datos del articulo en la tabla de
> pedidos, pero ¿tiene sentido hacerlo asi?
Como producto de la normalización, te aparecen en la tabla de detalles
de pedidos la descripción y el precio del artículo del pedido generado.
Este problema no existe normalizando bien.
Lo vimos en clase con el ejemplo de las facturas y los detalles de las
facturas... es un caso equivalente.
Lo que tenés que controlar es no perder integridad por otra cosa, como
por ejemplo subir artículos que dependan de datos que no sabés si están
(rubros por ejemplo) u otra cosa.
> Muchas gracias, saludos
Saludos!
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado