Q conviene mas?
Publicado por fmonte (3 intervenciones) el 15/06/2006 04:18:31
Hola gente les presento una duda:
En mi laburo tengo q hacer una aplicacion, pero para arrancar tengo q recuperar informacion de tres base de datos de Access diferentes, o sea entre las tres Base de datos, iria llenando mi BD.
El tema es el siguiente q no sabemos que conviene mas hablando de costo y eficiencia?
- Primeramente, en una de las BD estarian la totalidad de registros que irian en nueva que tenemos q hacer, pero solo algunos campos no sirviria de esa BD.
-En otra BD, recuperariamos algunos campos.
-En la tercera lo mismo.
-Ademas, como a cada año se tenien q actualizar, necesitamos 3 campos de nuestra BD para usarlas en el proximo año, o sea si limpiamos las BD nuestra cada año, antes tenemos que recuperar esos tres campos para cada registro.
Primera Opcion:
-recorrer con un While la primera BD q estan todos los registros, y a medida que voy recorriendo, voy haciendo un SELECT de la segunda BD para recuperar campos q necesito y luego hacer un UPDATE con todos los campos recuperados para mi tabla final. Todo bien, pero surgio un problema, el tema que esta BD se renueva cada año, o sea cada año hay que hacer de nuevo estos pasos, para recuperar la informacion, porque estas 3 BD q mencione siempre van a existir, y a partir de estas armamos la nuestra. Comparando los registros de un año, al año siguiente que hay q hacer estos pasos nuevamente, puede darse el caso que se borren registros, que se actualicen o que se inserten. Voy a explicar cuando pasaria esto:
-Insercion: Es el caso que un registro del recorrido del WHILE no exista en la BD nuestra.
-Update: Es el caso que exista, entonces actualizamos.
-Borrado: Es el caso que existan registros en nuestra BD, que no esten en el recorrido del WHILE.
O sea para esto necesitamos en el medio del WHILE 1select y otro fuera del While de esta forma:
/////////////////////
While (hasta q la primera BD se termine){
- select (de nuestra tabla con la clave del registro recuperado del WHILE, para ver si existe o no)
if el Select da vacio, es porque no existe, entonce insertamos con INSERT, si existe actualizamos con UPDATE.
}
Luego un select de nuestra tabla para ver si existe en la primera BD, si no existe se borra con DELETE.
////////////////////
2da opcion:
Esta opcion seria limpiar la BD, o sea Borrarla toda cada año y empezar de nuevo. Luego se haria lo mismo q en la priemra opcion, se recorraria con un WHILE la primera BD y no pregutariamos si existe, sino que directamente INSERTAMOS, porque la BD la vaciamos antes.
El tema que antes de vaciarla, como habia dicho arriba de todo, tenemos q recuperar los tres campos, y bueno habiamos pensado usar un arreglo dinamico y ahi vamos guardando. Luego para para Insert en el WHILE, usariamos este arreglo para recuperar esos tres campos. Para buscar en el arreglo esos tres campos, tendriamos que hacer un metodo de busqueda, tipo una busqueda binaria.
Costos primera opcion: recorrido del while, el primer select, luego insertamos o actualizamos, y luego otro select y borramos registros.
Costos segunda opcion: recorrer nuestra BD, y guardarlo en un arreglo, luego hacer un WHILE y en el medio del WHILE, buscar en le arreglo dinamico los tres campos mencionados y luego hacer los insert.
Cual opcion comviene mas?? muchas gracias, si no entienden algo, diganmen.
En mi laburo tengo q hacer una aplicacion, pero para arrancar tengo q recuperar informacion de tres base de datos de Access diferentes, o sea entre las tres Base de datos, iria llenando mi BD.
El tema es el siguiente q no sabemos que conviene mas hablando de costo y eficiencia?
- Primeramente, en una de las BD estarian la totalidad de registros que irian en nueva que tenemos q hacer, pero solo algunos campos no sirviria de esa BD.
-En otra BD, recuperariamos algunos campos.
-En la tercera lo mismo.
-Ademas, como a cada año se tenien q actualizar, necesitamos 3 campos de nuestra BD para usarlas en el proximo año, o sea si limpiamos las BD nuestra cada año, antes tenemos que recuperar esos tres campos para cada registro.
Primera Opcion:
-recorrer con un While la primera BD q estan todos los registros, y a medida que voy recorriendo, voy haciendo un SELECT de la segunda BD para recuperar campos q necesito y luego hacer un UPDATE con todos los campos recuperados para mi tabla final. Todo bien, pero surgio un problema, el tema que esta BD se renueva cada año, o sea cada año hay que hacer de nuevo estos pasos, para recuperar la informacion, porque estas 3 BD q mencione siempre van a existir, y a partir de estas armamos la nuestra. Comparando los registros de un año, al año siguiente que hay q hacer estos pasos nuevamente, puede darse el caso que se borren registros, que se actualicen o que se inserten. Voy a explicar cuando pasaria esto:
-Insercion: Es el caso que un registro del recorrido del WHILE no exista en la BD nuestra.
-Update: Es el caso que exista, entonces actualizamos.
-Borrado: Es el caso que existan registros en nuestra BD, que no esten en el recorrido del WHILE.
O sea para esto necesitamos en el medio del WHILE 1select y otro fuera del While de esta forma:
/////////////////////
While (hasta q la primera BD se termine){
- select (de nuestra tabla con la clave del registro recuperado del WHILE, para ver si existe o no)
if el Select da vacio, es porque no existe, entonce insertamos con INSERT, si existe actualizamos con UPDATE.
}
Luego un select de nuestra tabla para ver si existe en la primera BD, si no existe se borra con DELETE.
////////////////////
2da opcion:
Esta opcion seria limpiar la BD, o sea Borrarla toda cada año y empezar de nuevo. Luego se haria lo mismo q en la priemra opcion, se recorraria con un WHILE la primera BD y no pregutariamos si existe, sino que directamente INSERTAMOS, porque la BD la vaciamos antes.
El tema que antes de vaciarla, como habia dicho arriba de todo, tenemos q recuperar los tres campos, y bueno habiamos pensado usar un arreglo dinamico y ahi vamos guardando. Luego para para Insert en el WHILE, usariamos este arreglo para recuperar esos tres campos. Para buscar en el arreglo esos tres campos, tendriamos que hacer un metodo de busqueda, tipo una busqueda binaria.
Costos primera opcion: recorrido del while, el primer select, luego insertamos o actualizamos, y luego otro select y borramos registros.
Costos segunda opcion: recorrer nuestra BD, y guardarlo en un arreglo, luego hacer un WHILE y en el medio del WHILE, buscar en le arreglo dinamico los tres campos mencionados y luego hacer los insert.
Cual opcion comviene mas?? muchas gracias, si no entienden algo, diganmen.
Valora esta pregunta


0