Entidad asociativa
# Entidad asociativa

Una entidad asociativa es un término utilizado en la teoría entidad-relación. Una base de datos relacional requiere la implementación de una relación base (o tabla base) para resolver relaciones "muchos a muchos". Una relación base que representa este tipo de entidad se denomina, informalmente, tabla asociativa.

Como se mencionó anteriormente, las entidades asociativas se implementan en la estructura de una base de datos utilizando tablas asociativas, que son tablas que pueden contener referencias a columnas de la misma o de diferentes tablas.

Una tabla asociativa (o de unión) mapea dos o más tablas haciendo referencia a las claves primarias (CP) de cada tabla. En efecto, contiene varias claves foráneas (CF), cada una en una relación de muchos a uno desde la tabla asociativa a las tablas individuales. La CP de la tabla asociativa se compone típicamente de las mismas columnas CF.

Las tablas asociativas se conocen coloquialmente con muchos nombres, incluidos tabla de asociación, tabla puente, tabla de referencias cruzadas, tabla unión, tabla combinada, tabla intermedia, tabla de intersección, tabla de unión, tabla de enlace, la resolución de muchos a muchos, tabla de mapa, tabla de mapeo, tabla de emparejamiento, tabla dinámica (como se usa incorrectamente en Laravel, no debe confundirse con el uso correcto de la tabla dinámica en hojas de cálculo) o tabla de transición.

## Uso de tablas asociativas

Un ejemplo del uso práctico de una tabla asociativa sería asignar permisos a los usuarios. Puede haber varios usuarios y a cada usuario se le pueden asignar cero o más permisos. Se pueden otorgar permisos individuales a uno o más usuarios.

Una instrucción SELECT en una tabla asociativa usualmente implica el cruce de la tabla principal con la tabla asociativa:

Esto retornará una lista de todos los usuarios y sus permisos.

La inserción en una tabla asociativa involucra diversos pasos: primero insertar en las tablas principales y después insertar en la tabla asociativa.

Al usar claves foráneas en la tabla asociativa, la base de datos podrá de-referencia los valores de la tabla UsuarioPermisos a las de las tablas Usuarios y Permisos.

* Base de datos relacional
