Dans une table de jointure ou de jonction pure, tous les champs feront partie de la clé primaire. Considérons par exemple les tableaux suivants :
CREATE TABLE USERS
(ID_USER NUMBER PRIMARY KEY,
FIRST_NAME VARCHAR2(32),
LAST_NAME VARCHAR2(32));
CREATE TABLE ATTRIBUTES
(ID_ATTRIBUTE NUMBER PRIMARY KEY,
ATTRIBUTE_NAME VARCHAR2(64));
Une table de jonction entre ceux-ci pour permettre à de nombreux utilisateurs d'avoir de nombreux attributs serait
CREATE TABLE USER_ATTRIBUTES
(ID_USER NUMBER REFERENCES USERS(ID_USER),
ID_ATTRIBUTE NUMBER REFERENCES ATTRIBUTES(ID_ATTRIBUTE),
PRIMARY KEY(ID_USER, ID_ATTRIBUTE));
Parfois, vous aurez besoin d'ajouter une colonne non principale à une table de jonction, mais je trouve que c'est relativement rare.
Partagez et profitez.