Une entité associative est un terme utilisé dans la théorie relationnelle et entité-relation . Une base de données relationnelle nécessite l'implémentation d'une relation de base (ou table de base ) pour résoudre les relations plusieurs-à-plusieurs . Une relation de base représentant ce type d'entité est appelée, de manière informelle, une table associative .

Comme mentionné ci-dessus, les entités associatives sont implémentées dans une structure de base de données à l'aide de tables associatives, qui sont des tables pouvant contenir des références à des colonnes provenant de la même table de base de données ou de tables différentes au sein de la même base de données.

Une table associative (ou de jonction) mappe deux ou plusieurs tables ensemble en référençant les clés primaires (PK) de chaque table de données. En effet, elle contient un certain nombre de clés étrangères (FK), chacune dans une relation plusieurs-à-un de la table de jonction aux tables de données individuelles. La PK de la table associative est généralement composée des colonnes FK elles-mêmes.
Les tables associatives sont connues familièrement sous de nombreux noms, notamment table d'association , table de pont , table de références croisées , passage pour piétons , table intermédiaire , table d'intersection , table de jointure , table de jonction , table de liens , table de liaison , résolveur plusieurs-à-plusieurs , table de mappage , table de mappage , table de jumelage , table pivot (comme utilisé dans Laravel — à ne pas confondre avec l'utilisation de table pivot dans les feuilles de calcul ), ou table de transition .
Utilisation des tables associatives
Un exemple d'utilisation pratique d'une table associative serait d'attribuer des autorisations aux utilisateurs. Il peut y avoir plusieurs utilisateurs et chaque utilisateur peut se voir attribuer zéro ou plusieurs autorisations. Des autorisations individuelles peuvent être accordées à un ou plusieurs utilisateurs.
CRÉER UNE TABLE Utilisateurs ( UserLogin varchar ( 50 ) CLÉ PRIMAIRE , UserPassword varchar ( 50 ) NON NULL , UserName varchar ( 50 ) NON NULL ); CRÉER UNE TABLE Autorisations ( PermissionKey varchar ( 50 ) CLÉ PRIMAIRE , PermissionDescription varchar ( 500 ) NON NULL ); -- Il s'agit de la table de jonction. CREATE TABLE UserPermissions ( UserLogin varchar ( 50 ) REFERENCES Utilisateurs ( UserLogin ), PermissionKey varchar ( 50 ) REFERENCES Permissions ( PermissionKey ), PRIMARY KEY ( UserLogin , PermissionKey ) );

Une instruction SELECT sur une table de jonction implique généralement de joindre la table principale à la table de jonction :
SÉLECTIONNEZ * À PARTIR DES UTILISATEURS REJOIGNEZ LES PERMISSIONS D'UTILISATEUR EN UTILISANT ( UserLogin );
Cela renverra une liste de tous les utilisateurs et de leurs autorisations.
L'insertion dans une table de jonction implique plusieurs étapes : d'abord l'insertion dans la ou les tables principales, puis la mise à jour de la table de jonction.
-- Création d'un nouvel utilisateur INSERT INTO Users ( UserLogin , UserPassword , UserName ) VALUES ( 'SomeUser' , 'SecretPassword' , 'UserName' ); -- Création d'une nouvelle autorisation INSERT INTO Permissions ( PermissionKey , PermissionDescription ) VALUES ( 'TheKey' , 'Une clé utilisée pour plusieurs autorisations' ); -- Enfin, mise à jour de la jonction INSERT INTO UserPermissions ( UserLogin , PermissionKey ) VALUES ( 'SomeUser' , 'TheKey' );
À l'aide de clés étrangères, la base de données déréférencera automatiquement les valeurs de la table UserPermissions vers ses propres tables.