W czystej tabeli „połącz” lub skrzyżowania wszystkie pola będą częścią klucza podstawowego. Rozważmy na przykład następujące tabele:
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));
Tabela połączeń między nimi, aby umożliwić wielu użytkownikom posiadanie wielu atrybutów, byłaby
CREATE TABLE USER_ATTRIBUTES
(ID_USER NUMBER REFERENCES USERS(ID_USER),
ID_ATTRIBUTE NUMBER REFERENCES ATTRIBUTES(ID_ATTRIBUTE),
PRIMARY KEY(ID_USER, ID_ATTRIBUTE));
Czasami zajdzie potrzeba dodania kolumny innej niż podstawowa do tabeli skrzyżowań, ale uważam, że jest to stosunkowo rzadkie.
Dziel się i ciesz.