Em uma tabela de junção ou junção pura, todos os campos farão parte da chave primária. Por exemplo, vamos considerar as seguintes tabelas:
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));
Uma tabela de junção entre estes para permitir que muitos usuários tenham muitos atributos seria
CREATE TABLE USER_ATTRIBUTES
(ID_USER NUMBER REFERENCES USERS(ID_USER),
ID_ATTRIBUTE NUMBER REFERENCES ATTRIBUTES(ID_ATTRIBUTE),
PRIMARY KEY(ID_USER, ID_ATTRIBUTE));
Às vezes, você encontrará a necessidade de adicionar uma coluna não primária a uma tabela de junção, mas acho que isso é relativamente raro.
Compartilhe e curta.