Un caso muy común, Muchos a Muchos

Siguiendo las instrucciones del Post anterior, al hacer nuestro analisis empezaremos por buscar todas las relaciones n a 1, definiendo los enlaces a maestro y los punteros mas obvios.

Ejemplo :

En el registro de facturas , crearemos el campo Cliente, que será un puntero a Maestro al Cliente y Velneo nos creará su plural automáticamente como hemos comentado, es decir la relacion 1 a N, creándonos automáticamente el Plural de un Cliente a todas sus facturas

Pero es posible que nos encontremos con el siguiente caso.

Un elemento de una tabla se relaciona con muchos de otra y a la inversa sucede lo mismo. En ese caso no encontramos la relación n a 1, sin embargo estamos convencidos de que entre ambas debe existir una relación.

¿Que sucede? ¿Cual es entonces la que tiene el puntero a maestro sobre la otra?>

Ejemplo: Una tabla Obras de Teatro, y otra Actores.

  • Una Obra se relaciona con muchos Actores (Todos los que la han representado, es uno a n, no es un enlace a Maestro).
  • Si vamos a Actores nos sucede lo mismo, un Actor apuntará a muchas Obras, todas las que ha representado, por tanto tampoco es un enlace a Maestro.
  • La lógica nos dice que ambas tablas las quiero relacionar, pero No puedo según lo comentado, no encuentro la relación n a 1.
  • La lógica y lo que queremos es a partir de una Obra, obtener todos los actores que intervienen en ella y a partir de un actor todas las obras en que ha intervenido.
  • ¿Qué sucede? , ¿Cual es la solución?
    Nos olvidamos por definir una tabla. Esto es así en el 100% de los casos que nos encontremos esta situación. Queremos relacionar dos tablas, pero cualquier registro de ambas se relaciona con varios de la otra.

    Ejemplo:La tabla que nos falta es Reparto. Que estara compuesta de un puntero a Obras y otro puntero a Actores.

  • Un registro de reparto apuntara a un único Actor.
  • Un registro de reparto apuntará a una única Obra.
  • Por tanto Repartos será Plural de Actores y Repartos será plural de Obras.
  • De esta manera desde Actor, tendremos acceso a todos los repartos y consecuentemente a todas las obras en que ha intervenido.
    y de una Obra tenemos acceso a todos los repartos y consecuentemente a todos los actores que la han interpretado.

    Simplemente nos faltaba una tabla nueva. Lo mismo sucede nos sucederá y mas si no tenemos experiencia en definir bases de datos con múltiples ejemplos y la solución siempre es la misma, olvidamos definir una tabla.

    Otro Ejemplo

    Establecer la relaciones Alumnos y Profesores , en el caso de que distintos profesores puedan impartir asignaturas a distintos alumnos y queramos relacionar un Profesor con todos los alunmos a los que le imparte alguna clase y a un alumno con todos los profesores que le imparten clases. Nos hara falta una tabla intemedia de asignaturas, grupos o lo que sea , pero que en cualquier caso tenga un puntero al alumno y otro al profesor, relacionando ambos.

    Estos ejmplos los tenéis desarrollados en el Tutor de Análisis de Velneo

    Anuncios

    Acerca de Miguel Pérez Oliver
    Un abuelo en esto del negocio del software, habiendo recorrido en estos 30 años de todo : Programador, analista, consultor, implantador y ahora en el lado oscuro. Coordinador del departamento comercial en Velneo y viajero.

    2 Responses to Un caso muy común, Muchos a Muchos

    1. Cirilo DIAZ says:

      QUE TAL
      OYE TIENES ESTOS DOS EJEMPLOS EN ARCHIVO QUE ME LOS PUEDAS MANDAR. SE ME HACE INTERESANTE.

      ATTE.
      CDIAZ

    2. Pingback: Fundamentos de Velneo : El Modelo Real de Base de Datos « Miguel Pérez Oliver

    Responder

    Introduce tus datos o haz clic en un icono para iniciar sesión:

    Logo de WordPress.com

    Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

    Imagen de Twitter

    Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

    Foto de Facebook

    Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

    Google+ photo

    Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

    Conectando a %s

    A %d blogueros les gusta esto: