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

[SOLUCIONADO] Consulta BASICA de Diseño BD

Estas en el tema de Consulta BASICA de Diseño BD en el foro de Bases de Datos General en Foros del Web. Que tal gente, No soy neófito en BDs, simplemente no se si se me olvidó de mis clases de Base de Datos de la facultad ...
  #1 (permalink)  
Antiguo 30/09/2014, 12:32
 
Fecha de Ingreso: junio-2008
Mensajes: 137
Antigüedad: 16 años, 5 meses
Puntos: 0
Consulta BASICA de Diseño BD

Que tal gente,

No soy neófito en BDs, simplemente no se si se me olvidó de mis clases de Base de Datos de la facultad o si nunca cayó un ejemplo similar. La cuestión es que no se que hacer en estos casos (ahora lo paso a explicar) y me interesa hacer la BD lo mas eficiente posible.

- Imaginen 2 tablas vinculadas: "Materiales" y "Productos".
- La tabla Materiales tiene los campos (Proveedor, descripcion, medidas, etc).
- La tabla Productos, entre otras cosas, va a tener VARIOS materiales, que pueden llegar a ser 15.

El problema que me viene a la mente, son los campos repetidos de la tabla Productos, ya que va a tener 15 materiales, de los cuales se usaran 1, 2.. o 15.

(Les hice una imagen a nivel ilustrativo)


Gente, se les ocurre como vincular estas tablas? En la imagen van a ver que en la tabla Productos, el indice "codigo1MaterialProducto" está vinculado al indice "codigoMaterial" de la tabla Material. Pero no se me ocurre mas que hacer lo mismo para CADA campo Material de la tabla Productos.

Espero que se haya entendido.

Gracias!

Última edición por sadzas; 30/09/2014 a las 12:38
  #2 (permalink)  
Antiguo 30/09/2014, 13:00
Avatar de 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
Puntos: 2658
Respuesta: Consulta BASICA de Diseño BD

Si cada producto va a relacionarse con N materiales, y cada Material puede serlo de N productos, es una relación de cardinalidad N:M y obligatoriamente requiere una tercera tabla, cuya PK está formada por las FK de Producto y Material.
Es parte del modelo E-R.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/09/2014, 13:26
 
Fecha de Ingreso: junio-2008
Mensajes: 137
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Consulta BASICA de Diseño BD

Vos te referís a la tabla intermedia, correcto?
La tabla intermedia siempre la entendí en relaciones muchos a muchos. Aplica entonces también a este caso? Donde la relación NO ES MUCHOS A MUCHOS.

En este caso, la tabla Productos tiene MUCHOS CAMPOS de Materiales, no es solo un campo que pueden ser muchos materiales y un Material que puede pertenecer a muchos productos.

Me explico? Acaso se requiere una tabla intermedia por cada capo de Material en la tabla Productos??
  #4 (permalink)  
Antiguo 30/09/2014, 13:38
Avatar de 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
Puntos: 2658
Respuesta: Consulta BASICA de Diseño BD

Cita:
En este caso, la tabla Productos tiene MUCHOS CAMPOS de Materiales, no es solo un campo que pueden ser muchos materiales y un Material que puede pertenecer a muchos productos.
Eso es un error de diseño, y de los severos, por falta de normalización.
Si tienes en la tabla productos, muchos campos que refieren a materiales, entonces lo que tienes es muchos materiales vinculados a un mismo producto. Está muy mal crearlos como campos de la misma tabla, ya que estás violando la 1FN (Primera Forma Normal) en todo y en parte.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 30/09/2014, 14:05
 
Fecha de Ingreso: junio-2008
Mensajes: 137
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Consulta BASICA de Diseño BD

Clarisimo con la respuesta. Ya la pude diseñar correctamente!!!


Gracias gnzsoloyo!!

Etiquetas: bd, diseño, mysql
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 03:10.