Principales respuestas
Almacenar Imagenes en SQL Sever

Pregunta
-
Hola! quisiera saber que tipo de dato se utiliza para almacenar una o varias imagenes en SQL Server asi como su contraparte en una clase de C#, ademas que formato de imagen es mas eficiente para esto y en caso de almacenar varias imagenes para una sola tabla debería crear varios datos del mismo tipo o de que manera logro esto ? Gracias.
Respuestas
-
Resumiendo las respuestas a las preguntas concretas que haces:
a) que tipo de dato se utiliza para almacenar una o varias imagenes en SQL Server: En las aplicaciones modernas se usa un VARBINARY(MAX) para cada una de las imágenes.
b) ... así como su contraparte en una clase de C#: En el lado cliente se convierte en un array de bytes (byte[]).
c) que formato de imagen es mas eficiente para esto: Al servidor SQL y al C#, a estos efectos, les da exactamente igual el formato de la imagen. Para ellos solo se trata de una secuencia de bytes. Así que el formato más eficiente dependerá únicamente del uso que el programa cliente vaya a hacer de esa imagen; no afecta ni al SQL ni al C#.
d) en caso de almacenar varias imagenes para una sola tabla debería crear varios datos del mismo tipo o de que manera logro esto: Esto es un problema de normalización de base de datos, y daría exactamente igual que la pregunta fuese "en caso de almacenar varios teléfonos para una sola tabla debería crear varios datos del mismo tipo". La respuesta es que depende de si la palabra "varios" indica siempre el mismo número o no. Por ejemplo, si en todos los registros van siempre tres imágenes tales como "imagen de frente", "imagen de perfil" e "imagen de espaldas", entonces sí es aceptable crear tres campos del mismo tipo en la misma tabla. Pero si es un número variable (por ejemplo, es una tabla de productos que pueden tener entre una y diez fotos), entonces se debe poner una tabla auxiliar que tenga un único campo de imagen, y conectarla con la tabla principal mediante una relación de uno a muchos.
- Propuesto como respuesta Miguel Egea GómezMVP, Moderator miércoles, 7 de octubre de 2015 7:18
- Marcado como respuesta Erick Salazar viernes, 9 de octubre de 2015 7:01
Todas las respuestas
-
En este articulo Leandro Tuttini te explica como hacerlo:
http://ltuttini.blogspot.com/2010/03/aspnet-guardar-imagen-base-de-datos.html
Roy Sillerico
-
Resumiendo las respuestas a las preguntas concretas que haces:
a) que tipo de dato se utiliza para almacenar una o varias imagenes en SQL Server: En las aplicaciones modernas se usa un VARBINARY(MAX) para cada una de las imágenes.
b) ... así como su contraparte en una clase de C#: En el lado cliente se convierte en un array de bytes (byte[]).
c) que formato de imagen es mas eficiente para esto: Al servidor SQL y al C#, a estos efectos, les da exactamente igual el formato de la imagen. Para ellos solo se trata de una secuencia de bytes. Así que el formato más eficiente dependerá únicamente del uso que el programa cliente vaya a hacer de esa imagen; no afecta ni al SQL ni al C#.
d) en caso de almacenar varias imagenes para una sola tabla debería crear varios datos del mismo tipo o de que manera logro esto: Esto es un problema de normalización de base de datos, y daría exactamente igual que la pregunta fuese "en caso de almacenar varios teléfonos para una sola tabla debería crear varios datos del mismo tipo". La respuesta es que depende de si la palabra "varios" indica siempre el mismo número o no. Por ejemplo, si en todos los registros van siempre tres imágenes tales como "imagen de frente", "imagen de perfil" e "imagen de espaldas", entonces sí es aceptable crear tres campos del mismo tipo en la misma tabla. Pero si es un número variable (por ejemplo, es una tabla de productos que pueden tener entre una y diez fotos), entonces se debe poner una tabla auxiliar que tenga un único campo de imagen, y conectarla con la tabla principal mediante una relación de uno a muchos.
- Propuesto como respuesta Miguel Egea GómezMVP, Moderator miércoles, 7 de octubre de 2015 7:18
- Marcado como respuesta Erick Salazar viernes, 9 de octubre de 2015 7:01
-