sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvilken kolonne for fremmednøgle:id eller enhver anden kolonne og hvorfor?

En fremmednøgle skal målrette mod en primær nøgle eller unik begrænsning. Det er normalt at referere til den primære nøgle, fordi du typisk vil henvise til en individuel række i en anden tabel, og den primære nøgle er identifikatoren for en tabelrække.

Fra et teknisk synspunkt er det ligegyldigt, om en fremmednøgle refererer til den primære nøgle eller en anden unik begrænsning, for i PostgreSQL er begge implementeret på samme måde ved hjælp af et unikt indeks.

Med hensyn til dine konkrete eksempler er der intet galt i at have den unikke size kolonne i vehicle_size være målet for en fremmednøgle, selvom det rejser spørgsmålet, hvorfor du ikke lavede size den primære nøgle og udelad id kolonne i det hele taget. Det er ikke nødvendigt for hver tabel at have et id kolonne, der er den automatisk genererede numeriske primærnøgle, bortset fra at der kan være ORM'er og anden software, der forventer det.



  1. Sammenligning af høj tilgængelighed af databaser - MySQL / MariaDB-replikering vs Oracle Data Guard

  2. Tildel samme id til rækker med samme kombination af data

  3. Sådan fungerer EXP() i MariaDB

  4. Tilslutning af SQuirreL SQL til Microsoft Excel