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

Har en Join-tabel (associeringstabel) en primær nøgle ? mange til mange forhold

I en ren 'join' eller junction-tabel vil alle felterne være en del af den primære nøgle. Lad os f.eks. overveje følgende tabeller:

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

En forbindelsestabel mellem disse for at tillade mange brugere at have mange attributter ville være

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

Nogle gange vil du finde behovet for at tilføje en ikke-primær kolonne til en krydstabel, men jeg synes, det er relativt sjældent.

Del og nyd.



  1. MySQL DATETIME - Skift kun datoen

  2. MySQL-fejl:2013, Mistet forbindelse til MySQL-server ved 'læsning af initial kommunikationspakke', systemfejl:0

  3. .Net ORM, der fungerer godt med MySQL

  4. Mød Michal Bar og mig hos Microsoft Ignite!