Pregunta

Hice una pantalla de mantenimiento de personas. El cliente quiere que almacene la foto de cada persona en la base de datos, y la hice sin problemas. Tengo una tabla separada para las imágenes con dos campos, id_person e imagen.

Estoy un poco preocupado porque es la primera vez que trabajo con imágenes en la base de datos. ¿Tendré problemas de rendimiento cuando la tabla crezca más allá de 1000/5000 imágenes? Supongo que el tamaño de cada imagen marcará la diferencia. Estoy seguro de que tendré que controlar que el usuario no guarde imágenes muy grandes en la base de datos.

¿Cuál sería un límite de buen tamaño? El cliente solo necesita fotos de la cara, pero estoy seguro de que alguien intentará hacer las fotos con una cámara de "último modelo" en plena calidad;)

Gracias.

¿Fue útil?

Solución

Por lo general, se prefiere mantener una carpeta de imágenes y el DB solo hace referencia a esa carpeta. Idealmente, cada persona tiene una identificación única y los archivos en la carpeta "Imágenes" coinciden con esa ID.

Si realmente desea almacenar los datos binarios directamente, puede obtener una foto de calidad razonable en 8 kb de un JPEG (aproximadamente 250x250 pix @ 25% de calidad). Por supuesto, esto sería inaceptable para la impresión, pero está bien para la identificación.

Solo usted sabrá si puede aceptar 8 kb adicionales por fila en su servidor de base de datos.

Otros consejos

Si Absolty debe hacerlo de esta manera, diría que lo limite a solo unos pocos kilobytes cada uno. Sin embargo, cada administrador de bases de datos en el mundo probablemente le dirá que colocar imágenes en un campo de base de datos es una muy, muy mala idea. Lo más notable verá que el rendimiento disminuye drásticamente cuando el archivo de la base de datos crece más allá de dos gigabytes de tamaño.

Preferiría hacer lo que dijo Jheddings y hacer que una carpeta con la identificación de cada persona sea el nombre del archivo y simplemente use un .jpg estándar o algo después de eso en una red compartida para que todas las computadoras que usen la aplicación puedan acceder a las imágenes.

Algunos encuentran que simplemente usar la ID no es lo suficientemente bueno en caso de que la foto debe ser eliminada o archivada, en cuyo caso pondrán un campo NVARCHAR (MAX) en su base de datos y almacenarán la ruta del archivo de red a la imagen en lugar de la imagen real. imagen.

Solo colocaría la imagen si su cliente no puede tener una ruta de compartir red.

Siempre que esté en una tabla separada con ID | Blob solo no debería haber ningún problema de rendimiento que obtenga esa foto, pero por otro lado prefiero mantener en DB solo referencias a archivos en HDD (o incluso mejor si su única foto de usuario usted No necesito una referencia porque el usuario con ID 1 va a /images/1.jpg)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top