Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/01/2008, 03:30
jaromero
 
Fecha de Ingreso: enero-2008
Ubicación: Sevilla
Mensajes: 22
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Demasiados campos para la tabla en la bdd!!

Cita:
Iniciado por Martap Ver Mensaje
Hola a todos!
Aunque llevo tiempo leyendo el foro es la primera vez que escribo!
Vereis me ha surgido un problema que no se como solucionar.

Mi web tiene varios productos y cada uno de los productos tiene varios tamaños disponibles (hasta 40 tamaños distintos). El problema me ha surgido en el momento en el que no se como tratar todos los tamaños. Son 50 valores y no quisiera que mi tabla tuviera tantisimos campos.

La question es que en mi gestor de productos quisiera poder modificar los tamaños a menudo, pero quisiera por ejemplo, me salieran en checkbox (no se si es la opcion mas viable) el listado de los productos y me salgan seleccionados los tamaños que hay en la base de datos. Esto sabria hacerlo si cada tamaño fuera un campo de la base de datos, consultando simplemente, pero al ser tantos...

Hay alguna otra opcion mas viable?

Espero haberme explicado bien... Gracias!!
La opción más segura y más buena de cara al diseño de la base de datos es que utilices una tabla con los tamaños, de forma que

[PRODUCTOS]
id
nombre
...

[PRODUCTOS_TAMAÑOS]
id_producto
id_prodtam
...

Así, cuando consultes un producto, puedes tener un catálogo ilimitado de tamaños accediendo en la base de datos a aquellos tamaños cuyo id_producto sea el de la tabla de productos...

Otra opción es montarlo con 3 tablas si el catálogo de tamaños es fijo para todos los productos:

[PRODUCTOS]
id
nombre
...

[TAMAÑOS]
id
nombre
...

[PRODUCTO_TAMAÑOS]
id_producto
id_tamaño

De forma que productos te almacena datos de los productos, tamaños sólo de tamaños (independientemente del producto y en la tabla producto_tamaños almacenas aquellos tamaños seleccionados para cada producto. Los checkbox que aparecerán seleccionados son los de esta tabla (y, en consecuencia, también aquellos que modifique tu cliente cada vez).

Saludos