Diseñar base de datos con categorías y subcategorías

Estoy creando un sitio de productos, estos tienen categorías, algunos 3 niveles. Por ej: Informática- Monitores- Lcd.
¿Cuál es la mejor manera de crear una base de datos en mysql?
Yo cree una tabla con las categorías del nivel 1, y otra tabla con el nivel 2, pero luego me di cuenta que tenia un tercer nivel, ¿tengo qué crear otra tabla y relacionarlas a todas o creo una sola tabla con todas las categorías sin importar el nivel pero como las relaciono?

1 Respuesta

Respuesta
1
Uhm, creo que la mejor opción sería tener una sola tabla nada más. Algo así:
id_categoria - nombre - id_categoriapadre
1 - Informatica - null
2 - Monitores - 1
3 - LCD - 2
E id_categoriapadre sería una FK hacia id_categoria (vamos, una relación).
¿Y los productos como los relaciono?
Estuve pensando en una relación de N a N entre categorías y productos, que en dicha relación este el id del producto, el id de la categoría de nivel 1, el del nivel 2 y el del nivel 3, que estos tres niveles tengan el FK de la tabla de categorías. ¿Funciona así? ¿O cómo seria mejor?
Gracias.
Pues depende de si un producto puede estar relacionado con varias categorías...
En el caso que planteas de una relación N:M necesitarías una tabla intermedia...
Conforme a la primera tabla que te he puesto, irían:
La tabla de productos:
id_producto - nombre
la tabla que relaciona productos con categorías:
id_producto (relacionado con productos->id_producto) - id_categoria (relacionada con categorias->id_categoria)
La verdad, es que creo que teniendo una tabla por cada nivel y luego poniendo otro campo por cada nivel de categoría es más engorro...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas