En el análisis de sistemas , una relación de muchos a muchos es un tipo de cardinalidad que se refiere a la relación entre dos entidades, [1] digamos, A y B, donde A puede contener una instancia padre para la cual hay muchos hijos en B y viceversa.
Por ejemplo, piense en A como Autores y B como Libros. Un Autor puede escribir varios Libros y un Libro puede ser escrito por varios Autores. En un sistema de gestión de bases de datos relacionales , dichas relaciones se implementan normalmente por medio de una tabla asociativa (también conocida como tabla de unión, tabla de unión o tabla de referencia cruzada ), por ejemplo, AB con dos relaciones de uno a muchos A → AB y B → AB . En este caso, la clave primaria lógica para AB se forma a partir de las dos claves externas (es decir, copias de las claves primarias de A y B).
En los marcos de aplicaciones web como CakePHP y Ruby on Rails , una relación de muchos a muchos entre tipos de entidades representados por tablas de bases de datos de modelos lógicos a veces se denomina relación HasAndBelongsToMany (HABTM). [2]