Retroceder   Foros del Web > Temas generales de computación > Programación > Ingeniería del software y Gestión de proyectos
Crea un nuevo usuario o inicia sesión utilizando tu cuenta de Facebook
Connect with Facebook

Respuesta
 
Herramientas Desplegado
Antiguo 20-ago-2008, 00:01   #1 (permalink)
estibaliz2006 ha deshabilitado el karma
 
Avatar de estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 373
estibaliz2006 está desconectado
qué es lo ideal para subir multiples archivos a la vezq

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...
  Responder Citando
Antiguo 20-ago-2008, 01:08   #2 (permalink)
desendoll se está portando bien
 
Avatar de desendoll
 
Fecha de Ingreso: mayo-2008
Mensajes: 319
Enviar un mensaje por MSN a desendoll
desendoll está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

No me leído todo porqué hay mucho texto..., pero la mejor opción es separar las imágenes en otra tabla y ligarlo con una clave de idproducto.
A no ser que el numero de imágenes sea siempre 4 por ejemplo, o otro numero fijo, después utiliza la primera opción.
__________________
Desen Web ... si, aprovecho el comentario para que visitéis mi blog...
me parece que tengo un premio al mas feo.... pero el mejor contenido
  Responder Citando
Antiguo 20-ago-2008, 01:40   #3 (permalink)
DooBie se está ganando tu confianza
 
Avatar de DooBie
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
DooBie está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

La mejor solución es la segunda, en cuanto al inner join, no es tan lioso como parece, una vez haces un par de consultas, veras el poder que tiene :)

Decídete por la segunda opción, no te arrepentirás.
__________________
LaoDesign
  Responder Citando
Antiguo 20-ago-2008, 02:32   #4 (permalink)
estibaliz2006 ha deshabilitado el karma
 
Avatar de estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 373
estibaliz2006 está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

gracias a los dos....si...definitivamente me había decidido por la segunda opción. la duda que me asalta con la segunda opción es la siguiente:

¿cuántas consultas tengo que realizar a la base de datos?

a ver, yo tengo pensado lo siguiente:

una primera consulta para mostrar los datos de la tabla producto del producto en cuestión que sea. esta primera consulta me dará los campos 'Nombre' y 'Caracteristicas'.

y una segunda consulta para mostrar las imágenes que tiene asociadas ese producto en cuestión y que están en la tabla imágenes. esta consulta se haría con el INNER JOIN.

es correcto este planteamiento? a fin de cuentas lo que quiero es mostrar una ficha del producto en cuestión con sus datos y sus imágenes asociadas.
  Responder Citando
Antiguo 20-ago-2008, 02:53   #5 (permalink)
DooBie se está ganando tu confianza
 
Avatar de DooBie
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
DooBie está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

Cita:
Iniciado por estibaliz2006 Ver Mensaje
gracias a los dos....si...definitivamente me había decidido por la segunda opción. la duda que me asalta con la segunda opción es la siguiente:

¿cuántas consultas tengo que realizar a la base de datos?

a ver, yo tengo pensado lo siguiente:

una primera consulta para mostrar los datos de la tabla producto del producto en cuestión que sea. esta primera consulta me dará los campos 'Nombre' y 'Caracteristicas'.

y una segunda consulta para mostrar las imágenes que tiene asociadas ese producto en cuestión y que están en la tabla imágenes. esta consulta se haría con el INNER JOIN.

es correcto este planteamiento? a fin de cuentas lo que quiero es mostrar una ficha del producto en cuestión con sus datos y sus imágenes asociadas.

Con una sola consulta es suficiente, en esa consulta, debes usar inner join, si no sabes muy bien como hacerlo, pasate por el foro de mysql, o mirate algun manual, es sencillo, pero debes practicar :)

saludos y animo!
__________________
LaoDesign
  Responder Citando
Antiguo 20-ago-2008, 04:19   #6 (permalink)
estibaliz2006 ha deshabilitado el karma
 
Avatar de estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 373
estibaliz2006 está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

gracias por tu inestimable ayuda DooBie. echare un vistazo más detenidamente al INNER JOIN
  Responder Citando
Antiguo 20-ago-2008, 05:43   #7 (permalink)
estibaliz2006 ha deshabilitado el karma
 
Avatar de estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 373
estibaliz2006 está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

bueno. entonces si no lo he entendido mal, para obtener la ficha de un producto con todos los datos (nombre, características e imagenes asociadas) que están en dos tablas diferentes la consulta sería la siguiente:

Código PHP:
SELECT FROM productos INNER JOIN imagenes ON productos.idproducto imagenes.idproducto_img 
esto me debería dar el nombre, características e imágenes asociadas a cada producto no?

y si hubiera que relacionar otra tabla más, 'categorías'? como sería la consulta entonces? las tablas quedarían así:

Tabla 'productos':

idproducto-------campo autonumérico
nombre-----------nombre del producto
caracteristicas--caracteristicas del producto
idcategoria_pto-categoría a la que pertenece el producto

Tabla 'categorias':

idcategoria-------campo autonumérico
nombrecat--------nombre de la categoría


Tabla 'imagenes':

idimagen--------campo autonumérico de la imagen
imagen----------ruta de la imagen
idproducto_img-id del producto al que corresponde esa imagen
  Responder Citando
Antiguo 21-ago-2008, 00:07   #8 (permalink)
estibaliz2006 ha deshabilitado el karma
 
Avatar de estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 373
estibaliz2006 está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

hola....alguna sugerencia?
  Responder Citando
Antiguo 21-ago-2008, 01:29   #9 (permalink)
DooBie se está ganando tu confianza
 
Avatar de DooBie
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
DooBie está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

La consulta seria esa, aunque siempre es mejor poner el nombre de los campos que quieres en lugar del *.
Para lo de las categorias, pues pones otro INNER JOIN ... ON ....

Te digo lo primero (lo del *) por que es posible que tengas algun nombre igual en diferentes tablas (ej: id), entonces, cambias el SELECT * .... por SELECT productos.id AS prod_id, productos.nombre AS prod_nom, imagenes.id AS img_id, ....
La consulta seria mas larga, pero creo que es la mejor forma de evitar duplicidad de campos
__________________
LaoDesign
  Responder Citando
Antiguo 21-ago-2008, 01:49   #10 (permalink)
estibaliz2006 ha deshabilitado el karma
 
Avatar de estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 373
estibaliz2006 está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

entonces a la consulta anterior habría que añadirle otro innerjoin con AND INNER JOIN categorias

es así?
  Responder Citando
Antiguo 21-ago-2008, 01:56   #11 (permalink)
DooBie se está ganando tu confianza
 
Avatar de DooBie
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
DooBie está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

Cita:
Iniciado por estibaliz2006 Ver Mensaje
entonces a la consulta anterior habría que añadirle otro innerjoin con AND INNER JOIN categorias

es así?
El AND te sobra:

SELECT .... FROM ... INNER JOIN tbl ON a=b INNER JOIN tbl2 ON c=d.....

algo asi :)
__________________
LaoDesign
  Responder Citando
Antiguo 21-ago-2008, 04:02   #12 (permalink)
estibaliz2006 ha deshabilitado el karma
 
Avatar de estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 373
estibaliz2006 está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

ok....gracias por todo DooBie....
  Responder Citando
Antiguo 21-ago-2008, 04:41   #13 (permalink)
DooBie se está ganando tu confianza
 
Avatar de DooBie
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
DooBie está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

Cita:
Iniciado por estibaliz2006 Ver Mensaje
ok....gracias por todo DooBie....
de nada
__________________
LaoDesign
  Responder Citando
Antiguo 21-ago-2008, 08:32   #14 (permalink)
$this->role('moderador');
GatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra Lassie
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 22.530
GatorV está desconectado
Respuesta: qué es lo ideal para subir multiples archivos a la vezq

Tema trasladado a Ingenieria de Software y Gestion de Proyectos.
__________________
Blog Web
  Responder Citando
Respuesta
No hay votos aún.
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.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 17:27.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100