Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   ¿Campo BLOB en Firebird = BD Grande y lenta? (https://www.clubdelphi.com/foros/showthread.php?t=74896)

jorosmtz 16-07-2011 15:37:17

¿Campo BLOB en Firebird = BD Grande y lenta?
 
Bueno, pues la pregunta está lanzada en el título del tema, ahora me explayo con ella.

Estoy haciendo un sistema con Firebird, en dicho sistema se almacenan datos de clientes, entre ellos sus fotos. ¿Me recomiendan guardar las fotos en un campo BLOB o mejor guardo las fotos en una ruta "x" y en la BD dicha ruta?

Le veo algunos inconvenientes a cada método utilizado, es por eso de la pregunta:

El primer método (solo guardar la ruta de la foto en la BD) tiene el inconveniente de que el usuario tiene que tomar una foto y guardarlo con un nombre de archivo y formato específico. Esto implica que si el usuario se equivoca en algo (ruta, nombre, formato) la foto ya no aparecerá, se tendría que validar mucho dentro de Delphi para que funcionara bien esto. Una foto borrada por error, el folder de fotos borrados por error, entre otros.

El método que más me convence es el de guardar la foto en un campo BLOB dentro de la BD, pero no se si esto afecte mucho el tamaño (supongo que si y de manera considerable), y tampoco conozco si afecte la velocidad de las búsquedas (estoy empezando con Firebird y no conozco mucho de este RDBMS) y/o al sacar los datos para ser desplegados.

¿Me pueden auxiliar por favor?

Gracias de antemano.

Casimiro Notevi 16-07-2011 19:41:24

Es un tema "clásico" que se ha tratado muchas veces, haz una búsqueda por clubdelphi, verás que encuentras varias entradas al respecto.
Personalmente te aconsejo que la guardes dentro de la BD porque una simple foto ocupa poco.

Delfino 18-07-2011 14:16:29

A la velocidad de busquedas no va a afectar para nada ya que los blob se guardan de manera optimizada.

Si guardas las fotos en una carpeta tendras que dar permisos a usuarios de red para esta carpeta.

El tamaño depende del formato de imagenes, si son jpg o gif no afectara mucho..

PepeLolo 29-07-2011 00:30:24

En mi caso usamos los dos casos, ficheros externos y campos Blob.
Hemos creado una clase que se encarga de ello, dependiendo de la necesidad, ficheros grandes o pequeños, comprimidos, encriptadas, etc.

Para el caso de almacenar en fichero, la clase se encarga de mapear el directorio donde se almacenan las imágenes, que es un subdirectorio que cuelga del directorio de la BBDD. Los ficheros se copian desde la ruta seleccionada por el usuario al subdirectorio de la BBDD este subdirectorio no lo conoce el usuario es transparente para el. Lo que se almacena en la BBDD es el nombre del fichero, la ruta la proporciona la aplicación como he comentado.

un saludo y espero que te sirva


La franja horaria es GMT +2. Ahora son las 05:38:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi