sql >> Base de Datos >  >> RDS >> Mysql

¿Tiene una tabla de unión (tabla de asociación) una clave principal? relación de muchos a muchos

En una tabla pura de 'unión' o unión, todos los campos serán parte de la clave principal. Por ejemplo, consideremos las siguientes tablas:

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 tabla de unión entre estos para permitir que muchos usuarios tengan muchos atributos sería

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 veces encontrará la necesidad de agregar una columna no principal a una tabla de unión, pero creo que esto es relativamente raro.

Comparte y disfruta.