Cita:
Iniciado por Coplo Gracias, pero yo quisiera un ejemplo porfavor de producto, categoria y subcategoria.
Coincido con jurena: No resulta claro a qué tipo de ejemplo te refieres.
En tu caso, en forma abstracta, un producto posee o pertenece a una categoría, y una categoría puede tener subcategorías.
Eso hace que existan tres tablas básicas: Producto, Categoría, Subcategoría.
El problema pasa por:
Producto:
- Tiene una relación 1:N mandatoria (FK NOT NULL) con Categoría. Esto implica que la FK de Categoría está en Producto
Categoría:
- Puede tener una relación 1:1 o 1:N no mandatoria con Subcategoría. Esto significa que en Categoría no puede ir la FK de Subcategoría (ya que es opcional), sino la PK de Categoría en la de Subcategoría.
- Puede tener una relación mandatoria N:N con Subcategoría, caso en el cual debería existir una tabla adicional que relacione ambos conjunto de datos.
¿Cuál es la solución?
La solución sale de las
reglas de negocio, que es donde se debe definir de qué se está hablando cuando se habla de Categoría y Subcategoría, teniendo en claro que un ejemplo del tipo
no significa en ningún momento que
NB 100 sea una subcategoría... eso es un
modelo de producto (cosa que no has incluido en tu descripción y que en tu caso es fundamental). Una
categoría es uno de los diferentes elementos de clasificación de objetos o cosas, y
NB 100 no entra en la definición. Para serlo, NB 100 debería aparecer como parte de la descripción de una notebook Acer, Ibm, HP, Sony, Samsung, Vaio o la que fuese, y eso no se da. Además, NB 100 debería
significar algo además de la sigla.
Entonces, "Notebook", si es una categoría, como lo es "Monitor", "Impresora", "Router", etc. El
precio puede ser una subcategoría, el
procesador puede ser una subcategoría, como también el tipo de
puerto (USB, RS232, Serial), y así sucesivamente.
Lo que esto significa es: Una categoría es un conjunto de datos repetitivos de una relación (datos que pueden aparecer como constantes en diferentes instancias de productos), y por lo tanto pueden ser separados en una tabla diferente,
En síntesis, para darte una mejor solución, no solamente tienes que darnos una mejor descripción de a qué "ejemplo" te refieres, sino que deberías detallarnos mejor a qué le denominas
categoría y
subcategoría.
¿Se entiende la idea?