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

Duda a la hora de crear un campo con multiples valores

Estas en el tema de Duda a la hora de crear un campo con multiples valores en el foro de Bases de Datos General en Foros del Web. Buenos Dias a todos, Estoy haciendo un buscador en php y mysql en el cual, estoy utilizando radiobuttons. Los radiobuttons estan agrupados en grupos de ...
  #1 (permalink)  
Antiguo 09/11/2010, 03:45
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta Duda a la hora de crear un campo con multiples valores

Buenos Dias a todos,

Estoy haciendo un buscador en php y mysql en el cual, estoy utilizando radiobuttons.

Los radiobuttons estan agrupados en grupos de 3, con tres opciones distintas, (que a la vez un productos puede estar en dos de estas opciones).

Mi pregunta es, un campo enum, puede guardar varias opciones (hasta aqui si que llego) pero luego que si varios productos tienen varias opciones, me mostrar bien el contenido?

Se que puede ser un poco enrevesado (o al menos eso pienso yo), esto es más o menos para "una tienda online"

Espero ver un 'poco de luz al final del tunel'

Gracias.
  #2 (permalink)  
Antiguo 09/11/2010, 05:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Duda a la hora de crear un campo con multiples valores

El campo enum permite entrar unos valores determinados, no se si te he entendido, pero lo que no puedes hacer es que esos valores varien en funcion del producto.

Supongamos

Producto1 Opciones 1,2 o 3
Producto2 Opciones 4,5 o 6

en el campo enum tendrias que poner enum(1,2,3,4,5,6) con lo que si esto se alarga a muchos productos con opciones distintas el enum dejaria de tener sentido.

Yo te aconsejaria no usar el enum si no un campo integer (si las opciones són digitos) y hacer una validación previa al insert. Es decir antes de hacer el insert comprovar por programación que la opción elegida concuerda con el producto.

Quim
  #3 (permalink)  
Antiguo 09/11/2010, 05:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Duda a la hora de crear un campo con multiples valores

Buenas Quim,

Ya tengo la respuesta jeje con el campo set, se puede hacer.
Con este campo, puedo asignar a un producto (con id 'x') varias categorias (pequeño,mediano,grande).
Luego la lectura de esto se hace de la siguiente forma :
Código SQL:
Ver original
  1. SELECT * FROM campo WHERE campo LIKE '%opcionx%'

Sin esta opcion ... tendria que meter los datos tantas veces como opciones tiene el producto. (si ya de por sí tengo 239, y muchos de ellos estan en distintas categorias ... pues me saldrian 1000).

Gracias por tu interes.

Un saludo.
  #4 (permalink)  
Antiguo 09/11/2010, 07:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Duda a la hora de crear un campo con multiples valores

Si pero NO tendras una estructura muy buena, ni te controlara que categorias puedes entrar en cada producto.

La forma correcta de hacer una relacion como esta n:m es

Productos
idProd
producto
....

Categorias
idCat
categoria
...

RelacionProdCat
idProd
idCat

Los 1000 o mas registros estaran en la ultima tabla pero esta solo guarda dos identificadores...

Y luego se consulta como


Código MySQL:
Ver original
  1. SELECT * FROM productos p inner join  RelacionProdCat r on p.idProd=r.idProd WHERE idCat=opcion

Aún que ahora no te lo parezca esto es mucho mas facil de mantener que un campo set.

Imagina que el producto 10 esta en las categorias 1,2,3,4,5,6,7,8,9,11,12 y por lo que sea deja de estar en la categoria 7

Con esta estructura solo tienes que hacer

Código MySQL:
Ver original
  1. DELETE RelacionProdCat WHERE idProd=10 and idCat=7;

Como lo harias con el campo set?

O un caso peor imagina que desaparece la categoria 7...


El tema de validar que categorias corresponden a cada producto lo dejo aparte....

Quim

Última edición por quimfv; 09/11/2010 a las 07:49
  #5 (permalink)  
Antiguo 09/11/2010, 08:25
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Duda a la hora de crear un campo con multiples valores

Buenas Quim,

Las categorias no se van a ampliar y un producto puede tener como mucho 4 categorias.
No voy a hacer panel de control web, (aunque no es nada correcto), ya que por tiempo tiene que estar para antes de diciembre (y mira en las fechas que estamos).

Con el campo set, creas las categorias y las subcategorias (categoria1, csubcategoria1, ...) y luego en el campo, las metes a mano y poco más.

Tienes toda la razón pero sin tiempo ... nada se puede hacer.

Etiquetas: multiples, campos
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 20:06.