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
    Consultor de Velneo, Responsable Captación Latam y España (Hoy) . General Manager Iber Corporation, Fl,Usa (2 Años) Director de Producción y Compras Satiber (3 Años) CIO Grupo Iber (7 Años, 6 empresas internacionales y 400 usuarios) Programador Independiente (2 Años) Responsable Proyecto Sial (Sistema Informático para la Administración Local) Responsable Soporte área de Levante Microinformática , grupo Bull (2 Años) Experiencia en diversos lenguajes de programación, bases de Datos, dirección departamentos informática, organización, producción, comercial y gestión de compras. Mperez@velneo.com

    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: