¿Se pueden almacenar varias imágenes en la misma columna para una base de datos MySQL?

Me alegra que sepa que no es aconsejable almacenar imágenes en la base de datos, sino que simplemente puede almacenar un enlace / clave de referencia en la base de datos y consultar la imagen usando la clave / enlace.

Es posible almacenar múltiples imágenes en una sola columna. Creo que hay diferentes algoritmos que se pueden usar para lograrlo. uno de los cuales sé es que está utilizando un separador único para cada una de las imágenes.

por ejemplo, no se espera que un archivo de imagen contenga algo como

££££ ///// $$$$ %%% ^^ $$]] [[]] [[]] [[]]

Aquí hay una secuencia que creo que será muy posterior si no es posible para que una imagen pueda contener.

puede usar esto como separador para image_1, image_2, image_3, etc.

cuando transmite desde la columna en la base de datos, entonces escribe un código para observar

££££ ///// $$$$ %%% ^^ $$]] [[]] [[]] [[]]

como una secuencia que muestra el final de un archivo y el comienzo de otro archivo.

la secuencia en sí misma no se muestra.

También puede decidir crear múltiples columnas dinámicamente para cada imagen.

NOTA: ¡almacenar archivos en la base de datos no es una buena idea!

Si tiene algún requisito para almacenar imágenes en la base de datos, tales requisitos ocasionalmente surgen, especialmente si no tiene muchas imágenes, son bastante pequeñas y crear un servidor de imágenes completo es un problema administrativo. sería mejor tratarlos como entidades DB adecuadas y no intentar combinar varias imágenes en la misma columna BLOB.

Esto no solo sería feo para su código de front-end para analizar, ya que solo obtendría un gran trozo de bytes y tendría que analizar las imágenes reales en el código de front-end, sería difícil identificar o administrar el imágenes

Entonces, tendrías algo como esto

crear imágenes de tabla (
image_id int auto_increment,
image_desc varchar (64),
image_data mediumblob no es nulo,
clave primaria (image_id)
) motor = innodb;

y las tablas que desean almacenar imágenes solo tendrían una clave foránea apuntando a la imagen apropiada

crear usuario de tabla (
user_id int auto_increment,
user_login varchar (64) no nulo único,
user_display_name varchar (256),
user_email varchar (256),
user_picture_id int no es nulo,
clave primaria (user_id),
la clave externa (user_picture_id) hace referencia a imágenes (image_id)
) motor = innodb;

Y sacaría la imagen de un usuario simplemente uniéndose a ella

seleccione i.image_data
del usuario u
unir imágenes i
en u.user_picture_id = i.image_id
donde u.user_login = ‘ID de usuario’;

Y no tiene que preocuparse por problemas extraños de análisis del lado del cliente, etc.

Nota: si tiene imágenes en archivos en un servidor de imágenes, puede usar el mismo esquema: simplemente cambie “image_data” a un varchar de tamaño apropiado y almacene la ruta a la imagen en el servidor de imágenes en lugar de los bytes de imagen .

Los objetos multimedia, como las imágenes cargadas desde la aplicación, sus respectivos nombres de archivo deben almacenarse en la columna varchar en lugar de los datos binarios de la imagen almacenados en la columna BLOB que pertenece a la tabla de la base de datos MYSQL, ya que almacenar datos binarios en la columna de la tabla será una gran sobrecarga en la recuperación de datos de imágenes de la base de datos MYSQL.

Alternativamente, también comenzando con MySQL 5.7.8, MySQL admite un tipo JSON nativo que facilita el almacenamiento de nombres de archivos de múltiples imágenes en una matriz JSON con la conveniencia de recuperar fácilmente los nombres de archivos de imágenes almacenados en la columna que contiene la matriz JSON de nombres de archivos de imágenes que pertenecen a la tabla de la base de datos MYSQL utilizando la función MYSQL JSON_EXTRACT

Puede almacenar imágenes en MySQL como blob, es decir, estas imágenes se almacenan en formato binario. Puede agregar otras columnas para guardar la metainformación de la imagen, como tipo, nombre de archivo original, crear tiempo y alias, etc. La metainformación se usa para distinguir las imágenes entre sí. Si desea marcar una imagen como gato, simplemente guarde su tipo como gato.
bueno, no se recomienda almacenar imágenes en mysql, porque cuando los datos alcanzan cierta cantidad, aumentaría la carga de la base de datos, las operaciones serían muy lentas. En general, las personas almacenan archivos en un sistema de archivos, digamos gridfs, proporcionados por mongodb. Intenté eso en mi proyecto, es realmente bueno para almacenar una gran cantidad de archivos pequeños. También tiene controladores para PHP.

No almacene imágenes en la base de datos. Motivos, entre otros:

  • La base de datos se vuelve enorme, aumentando el riesgo de corrupción de datos.
  • No puede utilizar CDN, o al menos tan fácilmente como si los archivos estuvieran almacenados en el sistema de archivos.
  • Hace que sea más difícil hacer una copia de seguridad de las imágenes por separado.

Le recomiendo que consulte los nombres de archivo en su lugar.

Entonces, sabe que no es una buena idea almacenar una imagen dentro de una base de datos, por lo que desea almacenar aún más imágenes en la base de datos, parece una buena idea.

Solo almacenar un blob en una base de datos no muestra mágicamente la imagen que obtienes. Siempre tiene que usar algunas funciones de manejo cuando carga y cuando guarda la imagen.

Entonces, sí, simplemente colocas un poco de lógica de separación en el blob, para que puedas leer la imagen. No funciona automáticamente, debes hacer el trabajo.

Solo recuerde, cada vez que consulte la tabla, no haga “seleccionar * de …”, simplemente nunca haga eso.

Usted es consciente de que han creado un sistema fantástico para almacenar imágenes y archivos, se llama sistema de archivos. Realmente debería reconsiderar, especialmente si las imágenes son grandes. Si son solo archivos pequeños, y no tantos, podría funcionar a su favor, pero las posibilidades no están a su favor.

En primer lugar, no se recomienda almacenar imágenes en la base de datos. En segundo lugar, los campos de valores múltiples deben almacenarse por separado en tablas para normalizarlo.

Puede agregar una identificación cada vez que almacene un nombre de imagen en la tabla (id, image_name). Almacene sus imágenes en CDN o en su sistema. Muéstrela obteniendo el nombre de la imagen de DB con la ruta de la imagen.

De esta manera, puede agregar tantos registros como sea posible. Se vuelve fácil de buscar y mostrar en el front-end.

No es recomendable almacenar imágenes en DB. La mejor práctica es almacenar archivos usando el sistema de archivos y almacenar la ruta en la base de datos. Incluso si necesita almacenar imágenes en DB, puede crear una matriz de código binario y almacenarlo en formato de serialización en una sola columna. Te permitirá tener múltiples imágenes en una sola columna.

Sí, solo tendría una fila para cada imagen. No tendría sentido tener múltiples columnas de imagen.

Para esta configuración, tenga una columna de etiqueta o nombre de archivo y un blob binario. Indexe su columna de búsqueda, es decir, la etiqueta, no indexe su blob.

No es un problema para un sitio pequeño. Pero con la escala esto podría ser una carga pesada en su base de datos. Asegúrese de utilizar encabezados de caché cuando corresponda, independientemente.

No, no coloque campos adicionales como ese también evite el almacenamiento de blobs como dice su artículo de URL.
Vaya a crear una nueva tabla y relacionarse con el elemento principal por la identificación del elemento, luego tendrá una forma dinámica de tener más y más imágenes de perros, gatos …
P.ej,
Ejemplo básico
El artículo principal (para gato, perro …)
elementos: id (primario), nombre_elemento (por ejemplo, nombre del perro, nombre del gato, bla, bla …), edad …
images: item_id (id del elemento anterior), image_name (almacena el nombre de la imagen en la carpeta de tu servidor)

Así que ahora no tienes que preocuparte por el gato o el perro o cualquier otra cosa, ¿verdad?

Poner imágenes en la base de datos como blob hace que el

Simplemente no lo hagas a menos que sean realmente pequeños y / o si es solo un pequeño número de ellos. Almacene solo la ruta (o nombre de archivo) a las imágenes en un campo de texto. Es mucho mejor que almacenar gotas.

More Interesting

¿Qué necesito saber para crear un software similar a salesforce?

¿Los nuevos desarrolladores eligen entre programar en Windows 7 o Mac OS X 10.7? ¿Cuáles son los beneficios y las limitaciones de cada alternativa?

¿Qué habilidades debe adquirir un nuevo en una empresa de software?

Cómo averiguar qué precio cobrar por un servicio de software que estoy creando

¿Alguna de las principales compañías tecnológicas de EE. UU. Ha comenzado a contratar desarrolladores en el extranjero en respuesta a la escasez de mano de obra de Silicon Valley y el aumento de los salarios?

¿Cuáles son las buenas certificaciones para los probadores de software?

¿Qué desafíos enfrentan los desarrolladores / programadores?

¿Qué tan importante es que Capgemini adquirió IGATE? Como empleado de IGATE (el año pasado pasó a trabajar como ingeniero de software), ¿hay alguna razón para estar entusiasmado?

Cómo agregar los detalles de mi curso de prueba de software en mi currículum

¿Cuáles son algunos de los trabajos de investigación en Ingeniería Industrial que han tenido un gran impacto en el campo?

¿Existen sitios web similares que hacen tutoriales en profundidad para la programación web como Nettuts de Envato?

Cómo terminar mi conocimiento informático desde la perspectiva de un desarrollador web

¿Cómo deciden las compañías de productos de software entre construir piezas centrales de software internamente en lugar de comprarlas a un tercero?

¿Cuáles son las mejores prácticas para el aseguramiento de la calidad del software cuando se utilizan metodologías de desarrollo ágiles?

¿Qué es el mantenimiento en ingeniería de software?