V čisté 'join' nebo spojovací tabulce budou všechna pole součástí primárního klíče. Podívejme se například na následující tabulky:
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));
Spojovací tabulka mezi nimi, která umožní mnoha uživatelům mít mnoho atributů, by byla
CREATE TABLE USER_ATTRIBUTES
(ID_USER NUMBER REFERENCES USERS(ID_USER),
ID_ATTRIBUTE NUMBER REFERENCES ATTRIBUTES(ID_ATTRIBUTE),
PRIMARY KEY(ID_USER, ID_ATTRIBUTE));
Někdy se setkáte s nutností přidat do spojovací tabulky neprimární sloupec, ale podle mě je to poměrně vzácné.
Sdílejte a užívejte si.