In een pure 'join'- of junctiontabel zullen alle velden deel uitmaken van de primaire sleutel. Laten we bijvoorbeeld de volgende tabellen eens bekijken:
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));
Een verbindingstabel tussen deze zodat veel gebruikers veel attributen kunnen hebben, zou zijn
CREATE TABLE USER_ATTRIBUTES
(ID_USER NUMBER REFERENCES USERS(ID_USER),
ID_ATTRIBUTE NUMBER REFERENCES ATTRIBUTES(ID_ATTRIBUTE),
PRIMARY KEY(ID_USER, ID_ATTRIBUTE));
Soms zul je merken dat het nodig is om een niet-primaire kolom toe te voegen aan een verbindingstabel, maar ik vind dat dit relatief zeldzaam is.
Deel en geniet.