Foros del Web » Creando para Internet » Diseño web »

Relacionar imágenes con artículos en gran base de datos

Estas en el tema de Relacionar imágenes con artículos en gran base de datos en el foro de Diseño web en Foros del Web. Buenas. Veréis, hace tiempo que he llevo diseñando webs para uso personal. Conozco bien HTML, CSS, JavaScript, PHP y demás. Ahora he comenzado una nueva ...
  #1 (permalink)  
Antiguo 28/11/2008, 02:15
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Relacionar imágenes con artículos en gran base de datos

Buenas. Veréis, hace tiempo que he llevo diseñando webs para uso personal. Conozco bien HTML, CSS, JavaScript, PHP y demás. Ahora he comenzado una nueva web de proporciones algo mayores y me he encontrado con una duda que va más allá de las cuestiones puramente teóricas.

El caso es que estoy creando una web donde quiero guardar una gran base de datos de artículos. Cada artículo tiene una serie de imágenes asociadas (un thumbnail y luego una serie de imágenes mayores que ya aparecen en su ficha) y el principal problema con el que me encuentro es ¿cómo organizar esto?

Mi primera idea ha sido relacionar las imágenes correspondientes a cada artículo dándoles un nombre relacionado con el id que el artículo posee en la base de datos. Por ejemplo para el artículo 835672 su thumbnail sería 835672t.jpg, su primera imagen 835672i1.jpg, su segunda imagen 835672i2.jpg, etc. No obstante no acaba de convencerme este sistema, y como sé que es algo común en bastantes webs imagino que habrá una serie de soluciones optimizadas de uso más o menos común.

¿Alguna idea?

Muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 28/11/2008, 05:37
Avatar de [NiRVaNa]  
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años
Puntos: 6
Respuesta: Relacionar imágenes con artículos en gran base de datos

Buenas... creo que tu problema se resulve con el uso de base de datos relacionales. Asumo que al estar usando PHP para una web, estaras usando MySQL como base de datos.

La idea que se me ocurre es que si 1 articulo puede tener n cantidad de imagenes pequenhas (no funciona mi enie) y tambien n cantidad de imagenes grandes, lo que puedes hacer es crear una tabla mas para las imagenes que este relacionada con el id del articulo mediante una clave foranea de articulo en la tabla de imagenes.

Para resolver cuales serian imagenes pequenhas y cuales imagenes grandes, lo que podrias hacer es tener un campo mas en la tabla imagenes que especifique el tipo de imagen que es (thumb o large).

De esta manera con un simple select podrias obtener las imagenes para dicho articulo ya sean thumbs o large.

Código:
SELECT * FROM images WHERE nroarticulo = xx AND tipoimagen = 'thumb'
Salu2.
__________________
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
  #3 (permalink)  
Antiguo 28/11/2008, 05:48
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Relacionar imágenes con artículos en gran base de datos

Sí, si eso lo entiendo perfectamente, ya digo que más que una cuestión teórica es una cuestión práctica, porque seguro que hay mil maneras de hacerlo (a mi se me ocurren unas cuantas) pero probablemente, como es una técnica bastante común, ya se conozcan las más eficientes.

Por ejemplo, eso que sugieres tú es una posibilidad que se me pasó por la cabeza, pero al final acaba ocupando mucho espacio en la BD innecesariamente. Si las imágenes tienen como nombre el id del producto, no hace falta guardar nada en la base de datos ya que a partir del id se puede obtener la ruta de sus imágenes, lo cual ahorra espacio en la base de datos, reduce el número de accesos a la misma y el uso de CPU.

Me gustaría saber si alguien tiene alguna experiencia en este tipo de webs y puede darme algún consejo.

Muchas gracias por la idea de todas formas [NiRVaNa]
  #4 (permalink)  
Antiguo 28/11/2008, 08:31
Avatar de [NiRVaNa]  
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años
Puntos: 6
Respuesta: Relacionar imágenes con artículos en gran base de datos

Todo depende. La solución que yo plantee obviamente va a ocupar su espacio en la base de datos.

Pero eso no tendria que ser inconveniente con tu aplicacion en PHP, ya que depende mucho de como hagas esas conexiones. Supongamos que si queres listar todas las imagenes, de todos sus productos, tomara un tiempo considerable dependiendo del tamaño de la base de datos.

Pero, si lo que necesitas es solamente para cada articulo, con abrir una conexion, hacer un select que te devolverá "algunas" filas y luego cerrar la conexion (es esto ultimo lo que muchas veces no se tiene en cuenta, y se abren infinitas conexiones que nunca son cerradas, y asi se sobrecarga la base de datos), no deberia ser un problema.

Es mi opinión. Salu2.
__________________
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:34.