Ver Mensaje Individual
  #5 (permalink)  
Antiguo 26/12/2009, 09:02
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: ¿Como seria la relaciones de las tablas producto, categoria y subcategoria

Cita:
Iniciado por Coplo Ver Mensaje
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
Cita:
Netbook Toshiba NB 100
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?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 26/12/2009 a las 09:14