Bases de Datos - Ayuda en Relaciones

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 9 puestos en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Ayuda en Relaciones

Publicado por Mike (3 intervenciones) el 03/02/2021 12:33:02
Hola, me gustaría que me ayudaran conceptualmentes en esta duda.
Estoy aprendiendo db y tengo una consulta sobre relaciones:

Si en una tabla donde defino Acciones a acomenter ( Pintar, Levantar una pared, etc..) diferentes,
como relaciono los materiales a utilizar en cada acción ?? con la tabla Acciones..
Supongo que tengo que hacer tablas intermedias, pero no sé como relacionarlas.

Estoy estancado..

Grácias de antemano ..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda en Relaciones

Publicado por anonymous (41 intervenciones) el 03/02/2021 13:46:54
Necesariamente tendrás que tener una estructura para almacenar los materiales.

No ilustras mucho acerca del tipo de acciones, pero aparte de la pintura supongo hay actividades de resanar, lijar e impermeabilizar entre otras. Ese tipo de acciones deberán estar en otra estructura diseñada solo para ello.

En la mitad de estas dos estructuras que acabo de mencionar, estará una intermedia que será la que normalice esa relación de tipo: M:M
De manera que esa intermedia se “roba” las claves de las externas que le conforman, valga decir el ID de materiales y el ID de la acción a llevar a cabo.

Así las cosas, eso te debería quedar parecido a esto:

Material ==> Ejecucion <== Accion

Donde Material tendrá su clave Material_ID, además de otros atributos como: Tipo_Material, Descripción y otros más.

Accion por su parte tendrá como clave Accion_ID, un nombre una descripción de ello, y otros más

Finalmente, la Ejecución que la puedes llamar de otra forma, tendrá su propia clave Ejecución_ID y por supuesto las claves de las otras dos (Material_ID, Accion_ID) que deberá ser un constraint de tipo Unique (No debería repetirse esa llave).

A esto se llegó porque entre Accion y Material existe una relación de varios a varios, una fila de la tabla Material puede tener muchas filas coincidentes en la tabla Accion y viceversa, lo que obliga a necesariamente a crear una tercera que le normalice y así evitar redundancia de información, quedando en 3FN.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 9 puestos en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Ayuda en Relaciones

Publicado por Mike (3 intervenciones) el 03/02/2021 16:28:47
Hola Jorge, y muchas gracias x tu respuesta.

Si lo entiendo.. y probablemente hubiera llegado a esa conclusión, pero mi problema es que
tengo 3 tablas diferentes de productos, que no puedo unificar perque tienen tratamientos muy diferentes
(de unos necesito una serie de datos y acciones, y de otros productos otros..), pero en la tabla que tu llamas ejecución no se cómo
vincular esas tres tablas ... a la Acción.

gracias por tu respuesta,
y perdona no ser más explicito, pero veo muy complicado explicarte el caso concreto...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda en Relaciones

Publicado por anonymous (41 intervenciones) el 03/02/2021 16:49:58
Sin conocer de fondo tu modelo y requisitos de lo que pretendes hacer.

Pienso que debes tener una tabla llamada Tipo_Producto que desde luego relacionarías con Productos y ahí se sabe de que tipo es cada uno de éstos.

Pero si te vas a poner a crear una tabla por cada producto que manejes, te enloqueces y vas a tener un problema serio de rendimiento, a la hora de confeccionar los querys para extraer información, y tu BD crecerá exponencialmente de forma incontrolada, estarías desperdiciando recursos innecesariamente.

Ese escenario es muy propio de máquinas industriales, donde cada una maneja unas características y atributos muy propios para cada máquina, y que solo tienen ellas y otras no, donde se opta por crear estructuras independientes para cada una.

Cualquier duda me escribes por el interno, para cortar ya este hilo. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 9 puestos en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Ayuda en Relaciones

Publicado por Mike (3 intervenciones) el 03/02/2021 17:10:01
Gracias Jorge.
En este tiempo y gracias a tu primera respuesta, estoy trabajando en una posible solución para mi problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar