Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/10/2016, 09:21
abrahamhs
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 16 años, 1 mes
Puntos: 11
Respuesta: Descargar desde BD

Es correcto guardar lo archivos en base de datos si la cantidad es bastante grande, digamos 5000 al día, también es correcto guardar en BD si la cantidad de archivos es muy dinámica, o si los archivos son menores a 1mg. Si los archivos son mayores a 1mg, o si la cantidad de archivos a almacenar es pequeña o muy estática, digamos 500 archivos en 3 años, conviene mas guardarlos a disco.

Un problema que se presenta muy grave al guardar archivos a disco, es la codificación de caracteres. Si se presentan caracteres raros al guardar a disco, terminaras devolviendo otros archivos que no corresponden o tal vez un error de que el archivo no existe. Si se te presentan caracteres raros en este link puedes encontrar como resolverlo

Si optas por la opción de guardar en base de datos, lo mas recomendable es tener dos bases; una con toda la logica de tu aplicacion y una tabla con un folio que indicara donde encontrar los archivos. La otra BD tendra solo una tabla con solo el folio correspondiente y los archivos. Esto es porque los binarios en la BD alentan los querys. Eso complica un poco la lógica de la aplicación pero si la cantidad de archivos es grande es mejor la BD como explica este link que es un articulo de investigación que compara el filesystem vs BD, contiene unas gráficas muy reveladoras. En ellas se observa como el filesystem es mejor cuando empiezas con la BD
y es mas rápido, pero conforme la cantidad de archivos crece, las gráficas se cruzan y la base de datos se vuelve mejor. Esto también explica porque la mayoría cree que es mejor el filesystem, y yo les respondería que depende. Si no existieran estas razones los campos CLOB y BLOB de las bases de datos no existirían.