Mysql
 sql >> Database >  >> RDS >> Mysql

Una tabella Join (tabella di associazione) ha una chiave primaria? molti a molti relazione

In una tabella di "unione" o giunzione pura, tutti i campi faranno parte della chiave primaria. Consideriamo ad esempio le seguenti tabelle:

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));

Una tabella di giunzione tra questi per consentire a molti utenti di avere molti attributi sarebbe

CREATE TABLE USER_ATTRIBUTES
  (ID_USER NUMBER REFERENCES USERS(ID_USER),
   ID_ATTRIBUTE NUMBER REFERENCES ATTRIBUTES(ID_ATTRIBUTE),
   PRIMARY KEY(ID_USER, ID_ATTRIBUTE));

A volte troverai la necessità di aggiungere una colonna non primaria a una tabella di giunzione, ma trovo che ciò sia relativamente raro.

Condividi e divertiti.