Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/09/2013, 05:33
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: 16 años, 5 meses
Puntos: 2658
Respuesta: BLOB V.s Varchar

Mi sugerencia de que uses VARCHAR apunta a que guardes la ruta relativa del archivo, y no la imagen en la tabla. Es lo más habitual, y tiene al menos tres motivos prácticos.
1) Guardar la imagen aumenta las necesidades de trafico de la base de datos, y es muy común que los servicios de hosting te pongan un techo de datos transferidos (en bytes) desde la base a cualquier aplicación. Esta cuota de transferencia es independiente de la cuota de tráfico de web, por lo que que tengas tráfico ilimitado de navegacion en el sitio, no implica que tengas ilimitado trafico de datos en base.
2) Tienen un mal impacto en los backups, ya que los datos binarios no se comprimen al momento de realizarlos, y por tanto terminan redundando en problemas de timeout de ejecución o de transferencia al hacer uno.
3) Requieren rutinas o proceso posterior de lo obtenido para reconvertir ese stream binario en una imagen. Esto no ocurre en el caso de guardar la ruta, porque los recursos para mostrar la imagen cuya ruta se obtiene en base, son mucho más sencillos.
Hay otras razones posibles, pero no vienen al caso.
En definitiva, es muy habitual que este tema se resuelva como te comento. Incluso Microsoft, IBM u Oracle, en sus sites, no almacenan imágenes o documetnos PDF en las tablas, sino en carpetas.
Por otro lado, ten en cuenta que a nivel de seguridad, el acceso a carpetas del site también puede ser restringido y filtrado con mejores recursos, mientras que la foto dentro de la base podría ser afectada por sql-injection (si esta no se controla bien), o bien impactada por errores en el manejo de datos. Un borrado "accidental" de una tabla, destruye completamente lo almacenado en ella, mientras que borrar un archivo, es todavía recuperable.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)