Hola a todos/as. tengo una duda y la verdad no sé cuál puede ser la solución ideal. a ver. Ahora mismo tengo una base de datos en la cual hay una tabla llamémosla productos. En esta tabla productos están (para simplificar) un id de cada producto (que es autonumérico); un nombre del producto; las características del producto y la ruta de la imagen del producto, la cual (la imagen) se almacena en un directorio llamado imagenes, es decir, en esta tabla sólamente se recoge la ruta de la imagen. Por lo tanto tengo:
Tabla 'productos':
idproducto-------campo autonumérico
nombre-----------nombre del producto
caracteristicas--caracteristicas del producto
imagen-----------ruta de la imagen
el archivo de la imagen es almacenado en la carpeta 'imagenes' del servidor.
bien. mediante este sistema subo a través de un formulario los diferentes datos que alimentan esta tabla.
mi duda surge ahora con lo siguiente: supongamos que en lugar de subir una única imagen por producto, lo que yo quiero subir son 'x' imágenes, las que sean (unas veces serán 2, otras 5, otras 1....). y aquí es donde se me plantea la duda. (el tema de como subirlas está resuelto, mi duda va por saber cuál es la mejor solución al respecto):
primera opción:
seguir como hasta ahora, es decir, con la tabla 'productos', donde se irán almacenando esos datos y ahora en lugar de una ruta de la imagen que se subía hasta ahora habrá almacenadas tantas rutas como imagenes subamos asociadas al producto en cuestión. es decir, tendríamos:
Tabla 'productos':
idproducto-------campo autonumérico
nombre-----------nombre del producto
caracteristicas--caracteristicas del producto
imagen1-----------ruta de la imagen 1
imagen1-----------ruta de la imagen 2
.
.
.
imagen n-----------ruta de la imagen n
si tomo esta decisión, mi pregunta es ¿como hacer para que se creen tantos campos 'imagen' como imagenes suba en la tabla 'productos'? es decir, si subo una única imagen, que aparezca un campo imagen pero si subo tres imágenes por ejemplo, que aparezcan los campos imagen1, imagen2 e imagen3, que almacenarían las rutas de esas imágenes.
segunda opción:
la segunda opción es que en lugar de almacenar todas las imágenes en la tabla 'productos', crear una tabla nueva llamada 'imágenes' donde se irían almacenando las diferentes imágenes de cada producto y que estaría relacionada con la tabla 'productos'. Así me quedaría:
Tabla 'productos':
idproducto-------campo autonumérico
nombre-----------nombre del producto
caracteristicas--caracteristicas del producto
Tabla 'imagenes':
idimagen--------campo autonumérico de la imagen
imagen----------ruta de la imagen
idproducto_img-id del producto al que corresponde esa imagen
con esta solución no tendría el problema de tener que generar tantos campos 'imagen' como en el caso anterior puesto que se irían ingresando en el único campo 'imagen' pero aquí el problema vendría en sacar después los datos mediante consultas y mostrarlos conjuntamente, es decir, sacar los datos del producto 'X' (nombre y características) que están en la tabla 'productos' y a la vez las imágenes de la tabla 'imagenes' asociadas a ese producto 'X'. Podría hacerlo con INNER JOIN pero no es muy lioso todo?
espero vuestras sugerencias. gracias por todo...