¿Tiene algo que ver con SQL Server 2000?

16/12/2006 - 15:35 por dgironal | Informe spam
Microsoft SQL Server 2000

Muy buenas, ante el siguiente planteamiento:

He de "almacenar" una serie de ficheros (son imágenes) en una base de datos,
estrechamente relacionados con una clave principal de una tabla (almaceno
una serie de artículo con sus características y cada uno tiene una serie de
imágenes asociadas), he pensado en no almacenar las imágenes en la base de
datos para no "engordarla demasiado" aprovechando el código del artículo,
más o menos de la siguiente forma:

id_articulo_1_imagen1.jpg
id_articulo_1_imagen2.jpg
.
.
.
id_articulo_i_imagen1.jpg
id_articulo_i_imagen2.jpg
id_articulo_i_imagen3.jpg
.
.
.
Como la base de datos SQL Server 2000 la utilizo como "almacén"
(potentísimo, con reglas de negocio implementada a través de disparadores,
restricciones, etc) ya que los usuarios interactuarán con ella a través de
una aplicación de escritorio y web he pensado que al decantarme por
almacenar esos ficheros FUERA de la base de datos y tener que realizar un
mantenimiento de ficheros (eliminar fichero cuando se modifiquen imágenes,
mover ficheros cuando se den de alta imágenes, etc...), en no almacenar NADA
que indique que un artículo tiene o no tiene imágenes ni cuantas imágenes
tiene y realizarlo a través de lecturas y comprobaciones en el sistema de
ficheros, ¿creo que se entiende? (he de presentar la ficha de un articulo,
leo la base de datos presento los datos, voy al directorio donde se supone
que tengo almacenadas la imágenes y en base al id del artículo lo que me
encuentre lo muestro, ...)

¿Me estoy equivocando y tendré MUCHÍSIMOS problemas?
¿Qué otros enfoques habéis implementado?
¿Almacenáis la ruta de los ficheros? -> doble mantenimiento borrar entrada
de la DB y borrar fichero, añadir entrada ...
¿Almacenáis los nombres de los ficheros? -> idem con el "doble
mantenimiento"
¿Almacenáis la cantidad de imágenes?
 

Leer las respuestas

#1 Maxi
16/12/2006 - 17:29 | Informe spam
Hola, este tema lo hemo discutido muchas veces en este foro, hay quienes
opinan que las imagenes deben ir fuera y quienes opinan que deben ir dentro.
A nivel administrativo si las separas va a aumentar sin dudas, ya que vas a
tener que controlar de alguna manera que pasa en el filesistem, tambien tene
en consideracion si el dia de maniana queres cambiar la ubicacion como lo
harias y que cosas deberias tocar.

Yo ya este tema trato de no discutirlo mas ;) mi opinion es que se debe
guardar dentro de la bdd y hacer un disenio acorde a esto, podrias por ej
separar las imagenes en un filegroups distinto. Pero a mi modo de ver yo
quiero tener centralizada la cosa.

Tambien podriamos ver que hace la industria (no quiere decir que siempre sea
lo mejor pero..) Microsoft dispone de un producto llamado Shareopint el cual
sirve para colaboracion y vos ahi podrias subir documentos, imagenes, etc,
etc por ej armar una intranet con los procedimientos de calidad de una
empresa y hasta su catalogo de productos con imagenes.
Este producto usa SQLServer como base de datos y guarda todo ahi dentro, se
lo utiliza a shareopint en grandes instalaciones donde hay mucha data y
usuarios y no hay mayores problemas.
Tambien Ms en un momento ha pensado en poner el filesystem de windows dentro
de un SQLServer :), en sql2005 si queres guardar un XML lo pone dentro de la
base de datos al igual que todo lo que es CLR.

Son solo detalles :)


Saludos

[Microsoft MVP SQL Server]
www.sqlgurus.org
Buenos Aires - Argentina
http://maxiaccotto.blogspot.com/
"dgironal" wrote in message
news:
Microsoft SQL Server 2000

Muy buenas, ante el siguiente planteamiento:

He de "almacenar" una serie de ficheros (son imágenes) en una base de
datos, estrechamente relacionados con una clave principal de una tabla
(almaceno una serie de artículo con sus características y cada uno tiene
una serie de imágenes asociadas), he pensado en no almacenar las imágenes
en la base de datos para no "engordarla demasiado" aprovechando el código
del artículo, más o menos de la siguiente forma:

id_articulo_1_imagen1.jpg
id_articulo_1_imagen2.jpg
.
.
.
id_articulo_i_imagen1.jpg
id_articulo_i_imagen2.jpg
id_articulo_i_imagen3.jpg
.
.
.
Como la base de datos SQL Server 2000 la utilizo como "almacén"
(potentísimo, con reglas de negocio implementada a través de disparadores,
restricciones, etc) ya que los usuarios interactuarán con ella a través de
una aplicación de escritorio y web he pensado que al decantarme por
almacenar esos ficheros FUERA de la base de datos y tener que realizar un
mantenimiento de ficheros (eliminar fichero cuando se modifiquen imágenes,
mover ficheros cuando se den de alta imágenes, etc...), en no almacenar
NADA que indique que un artículo tiene o no tiene imágenes ni cuantas
imágenes tiene y realizarlo a través de lecturas y comprobaciones en el
sistema de ficheros, ¿creo que se entiende? (he de presentar la ficha de
un articulo, leo la base de datos presento los datos, voy al directorio
donde se supone que tengo almacenadas la imágenes y en base al id del
artículo lo que me encuentre lo muestro, ...)

¿Me estoy equivocando y tendré MUCHÍSIMOS problemas?
¿Qué otros enfoques habéis implementado?
¿Almacenáis la ruta de los ficheros? -> doble mantenimiento borrar entrada
de la DB y borrar fichero, añadir entrada ...
¿Almacenáis los nombres de los ficheros? -> idem con el "doble
mantenimiento"
¿Almacenáis la cantidad de imágenes?



Preguntas similares