A ver si entendi, relacion muchos a muchos

Iniciado por danielo-, 17 Mayo 2010, 01:27 AM

0 Miembros y 2 Visitantes están viendo este tema.

danielo-

Bueno, pues, creo que esta pregunta muchos se la han hecho, como ya saben soy novato en esto de las bases de datos,  y me salio esta duda, resulta que me dijo mi maestro que las relaciones muchos a muchos debemos evitarlas a toda costa, porque a la hora de programarla tendriamos problemas, pero no dijo más.

Ahora, mi pregunta es: Si tengo la necesidad de hacer esta relación, que pasará?

Segun lei esta relacion se rompe al apoyarse de una tercera tabla auxiliar que contenga las claves primarias de cada una de las tablas que necesite unir mediante la relacion muchos a muchos,
pero es esto real? o sigue estando mal? es decir, seguure teniendo dificultades al programarlas? o ya con eso se resuelve el asunto? :o
Espero sus respuestas. gracias

^Tifa^

No creo que su profesor les haya dicho de manera muy seria que eviten siempre las relaciones M:M porque existen situaciones donde hay que estructurar y crear las tablas asi  :xD no siempre sera una sola entidad con otra unica entidad  :xD que el mundo donde vivimos es muy variado y un departamento puede tener varios empleados y varios empleados pueden estar a cargo de varios departamentos (aunque esto es solo un ejemplo) o un ejemplo mas logico, varios estudiantes pueden asistir a una clase de Ingles pero esos mismos estudiantes tambien podrian asistir a clases de Frances. Y las clases de Ingles y Frances pueden poseer mas de 1 rango de estudiantes en distintos horarios...

Lo que si puedo entender, es que tu profesor te dijese eso porque esta introduciendote en el tema de las relaciones y las entidades, y pues para evitar que te lies mucho o se lien otros, lo mejor es como basico intentar forzar a que relacionen de 1:1 o 1:M pero no mas que eso...

Ya cuando conozcan mas el asunto de las relaciones subdividir las tablas entre mas padre he hijos y ir relacionandolas todas por 1 o varios indices segun la conveniencia, es un proceso que dependiendo tu aplicacion podra obligarte a estructurar muchas tablas de relaciones 1:1, 1:M y hasta M:M o podra apenas requerir de tu tiempo pocas tablas de relaciones 1:M todo depende, pero para un principiante si puede resultar lioso ver un spaghettis de mas de 20 tablas donde hay relaciones de todo tipo ahi, por ende es comun que comienzen en lo mas basico, y es normal que se les peticione que por el momento no indaguen mas ni quieran crear tablas de relaciones M:M para que no se lien la cabeza, porque este ultimo modelado hay que tener mucho cuidado como se estructura para evitarse redundancia de datos y evitarte lios de spaghettis  :laugh:

danielo-

 :-\ ok... esta bien, entonces ya me quedo claro que una relacion M:N si puede ser, pero es un rollo, el problema no se resolvería como pense entonces ?:huh: con una tabla auxiliar? o si sería una posible solución?

^Tifa^

si hablamos de pocas relaciones M:M podria bastarte con 3 tablas o hasta 4... pero existen ocasiones donde la estructura de tablas que tu necesitas para una aplicacion, va mas alla que 3 o 4 tablas, hay aplicaciones que depende su tamanio o crecimiento con el tiempo, van requieriendo mas de 20 tablas, donde existen relaciones de todo tipo entre esas 20 incluyendo tu famoso M:M

No es que sea lioso, si hay que analizar muy bien lo que estas intentando crear porque sino lo analizas y disenas bien, podria crear lo que se llama redundancia de datos (y no querras eso), ahora, si la persona que esta disenando la estructura sabe bien lo que esta haciendo, sabra montarte el asunto sin que esto pase. Yo no puedo decirte que siempre con una tabla auxiliar ya resuelves el problema de M:M porque depende mucho que entidades y que relaciones estaras peticionando, aveces si, aveces solo necesitas 3 tablas, pero aveces de esas 3 tablas se requieren 2 mas para hacer otra relacion M:M con otras entidades...

Como principiante no deberias aspirar enrollarte en desarrollar este tipo de estructuras porque hay que aplicarle mucha logica mental, y no solo logica, sino tambien considerar la optimizacion, el rendimiento de eso que quieres implementar y otras cosas...

Pero si tu pregunta es si con una o mas tablas auxiliar el problema se puede resolver en este tipo de relaciones, la respuesta es SI, solo que como principiante no deberias enrollarte ahi porque te puedes liar de mala manera.

danielo-

:S  :P oko... gracias. Ya quedo entendido :)