Imágenes en SQL SERVER vs Imagenes en Sistema de Archivos

Tengo en una base de SQL SERVER un catalogo de imágenes y estoy en la disyuntiva de guardar las imagenes a la BD o guardar el URL y dejar las imagenes...

La FAQ Imágenes en SQL SERVER vs Imagenes en Sistema de Archivos tiene

Pertenece a la categoría:
Pregunta
Tengo en una base de SQL SERVER un catalogo de imágenes y estoy en la disyuntiva de guardar las imagenes a la BD o guardar el URL y dejar las imagenes en carpetas y luego mediante tags mostrarlas.


He encontrado que lo primero tiene muchas desventajas (el performance de la BD y del sitio disminuyen, etc ) pero no he encontrado ejemplos de lo segundo. (Cómo organizar las carpetas y los ficheros eficientemente y cómo subir o bajar las URL de imagenes a la BD)


Me pueden ayudar si "ya han pasaron por ese camino" ?

Respuesta de J. Manuel Velasco
Hola,

En la base de datos guarda unicamente el nombre de la imagen.

La estructura de directorios la controlas con constantes o directamente
en tu script.

Por ejemplo, algo así ...

$row = mysql_fetch_array($rs);
echo "<a href=images/articulos/" . $row["imagen"] . " target=_blank
title=ampliar>";
echo "<img src=images/articulos/". $row["imagen"]. " width=75px
border=0$gt;"
echo "</a>";

y si, guardar la imagen en la base de datos es muy poco recomendable.

Volver al árbol de categoríasVolver al árbol de categorías

Comentarios

elmaco

27/12/2008
Pues no, en realidad depende del punto de vista, porque yo tengo una base de datos de mas de 90,000 fotografias de productos, almacenadas en una tabla de fotos, y en realidad el performance no baja, si se guardan las fotos en una tabla separada que la de los datos.

Para mi es mejor, guardar en base de datos que en el disco. Tambien tengo otra aplicacion otros tantos miles de imagenes en disco, guardando solo el nombre y la ruta en la base de datos, pero prefiero la primera :D

Ernesto

16/6/2010
Guardar imagenes
La base de datos no debe cambiar su perfomance, tal vez la consulta en si. Evita las consultas select *, porque de este modo estas llamando a todos los campos, incluido las imagenes.
Es "recomendable" tener las imagenes aparte, por razones de compatibidad e interoperabilidad con otros sistemas operativos o bases de datos o aplicaciones.

ayumu_hououji

27/10/2011
correcion =P
while($row = mysql_fetch_array($result)) {
echo "<a href=" . $row["imagen"] . " target=_blank title=ampliar>";
echo "<img src=". $row["imagen"]. " width=75px border=0px>";
echo "</a>" ;
}
mysql_free_result($result);
mysql_close($link);
FAQ relacionadas

Para ver más FAQ relacionadas accede a las categorías:

Volver al árbol de categoríasVolver al árbol de categorías