Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Insertar en un campo más de un dato?

Estas en el tema de Insertar en un campo más de un dato? en el foro de Bases de Datos General en Foros del Web. Hola, mi situacion es esta, estoy tratando de hacer una tabl en mysql para insertar los colores de un objeto determinado, pero esos colores son ...
  #1 (permalink)  
Antiguo 20/03/2009, 10:02
Avatar de Julioarhernandez  
Fecha de Ingreso: enero-2007
Mensajes: 84
Antigüedad: 17 años, 3 meses
Puntos: 0
Pregunta Insertar en un campo más de un dato?

Hola, mi situacion es esta, estoy tratando de hacer una tabl en mysql para insertar los colores de un objeto determinado, pero esos colores son variables. Por ejemplo, cuando vaya a insertar un objeto como un lapicero, puede ser blanco, verde, azul, de cualquier color o colores porque tambien puede ser bicolor, tricolor..xcolor... como creo esta tabla o tablas porque creo que tambien puede ser con una tabla vinculada.
  #2 (permalink)  
Antiguo 20/03/2009, 10:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Insertar en un campo más de un dato?

Una forma es con tres tablas y la función GROUP_CONCAT()
PRODUCTO(PROD_ID, DESCRIPCION)
COLORES(COLOR_ID, NOMBRECOLOR)
COLORES_PRODUCTOS(PROD_ID,COLOR_ID)
La primer tabla contiene los productos, la segunda la lista de colores y la tercera los colores de cada producto.

Una consulta así te daría la combinación de colores de cada producto:
Código SQL:
Ver original
  1. SELECT DESCRIPCION, GROUP_CONCAT(NOMBRECOLOR SEPARATOR ',') COLORES
  2. FROM PRODUCTOS INNER JOIN COLORES_PRODUCTOS USING(PROD_ID)
  3. INNER JOIN COLORES USING(COLORS_ID);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 11:04.