Här är en omfattande guide för hur man använder utländska nycklar i en databas, inklusive exempel och överväganden:
Förstå utländska nycklar
* Syfte: Utländska nycklar verkställer förhållanden mellan tabeller i en relationsdatabas. De säkerställer dataintegritet genom att förhindra ogiltiga dataposter.
* Hur det fungerar: En utländsk nyckelkolumn i en tabell hänvisar till den primära nyckelkolumnen i en annan tabell. Detta skapar en länk, vilket säkerställer att värdena i den utländska nyckelkolumnen finns som giltiga primära nyckelvärden i den refererade tabellen.
Steg för att tillämpa en utländsk nyckel
1. Definiera tabellerna:
* Föräldertabell: Tabellen som innehåller den primära nyckeln (tabellen som refereras).
* Barnbord: Tabellen som innehåller den utländska nyckeln (tabellen som hänvisar till överordnad tabell).
2. Ange kolumnerna:
* Primärnyckel: Kolumnen i överordnad tabell som fungerar som den primära nyckeln.
* Utländsk nyckel: Kolumnen i barntabellen som hänvisar till den primära nyckeln.
3. Skapa begränsningen: Syntaxen varierar något beroende på ditt databassystem (MySQL, PostgreSQL, SQL Server etc.). Här är en allmän metod:
`` `SQL
Ändra tabell barntablename
Lägg till begränsningsnamn
Utländsk nyckel (ForeignKeyColumn)
Referenser föräldertablename (primärkeyColumn);
`` `
* constraintname: En unik identifierare för begränsningen.
* ChildTableName: Namnet på tabellen som innehåller den utländska nyckeln.
* ForeignKeyColumn: Namnet på kolumnen i barntabellen som fungerar som den utländska nyckeln.
* Parenttablename: Namnet på tabellen som innehåller den primära nyckeln.
* primärkeyColumn: Namnet på kolumnen i modertabellen som fungerar som den primära nyckeln.
exempel
Scenario: Skapa en databas för ett bibliotek. Vi har en tabell för "böcker" och en tabell för "låntagare".
tabeller:
* böcker:
* `BOOK_ID` (Primärnyckel)
* `Titel '
* `Författare '
* låntagare:
* `låntagare_id` (primär nyckel)
* `namn '
* `Adress`
* `book_id` (utländsk nyckel, refererar till` book_id` i böckertabellen)
SQL -kod:
`` `SQL
- Skapa böckertabellen
Skapa tabellböcker (
bok_id int primär nyckel,
Titel Varchar (255),
Författaren Varchar (255)
);
- Skapa låntagartabellen med den utländska nyckelbegränsningen
Skapa tabelllånare (
låntagare_id int primär nyckel,
Namn Varchar (255),
Adress Varchar (255),
bok_id int,
Foreign Key (Book_ID) Referensböcker (bok_id)
);
`` `
Nyckelöverväganden
* dataintegritet: Utländska nycklar hjälper till att säkerställa att data i relaterade tabeller förblir konsekvent. Till exempel kan du inte infoga en låntagarskiva med en "book_id" som inte finns i tabellen "böcker".
* kaskadalternativ: Du kan definiera hur utländska nyckelbegränsningar ska bete sig när data modifieras eller raderas i överordnade tabellen.
* Cascade Delete: Raderar rader i barnbordet när en matchande rad i överordnad tabell raderas.
* kaskaduppdatering: Uppdateringar relaterade rader i barntabellen när motsvarande rad i överordnade tabellen uppdateras.
* Prestanda: Utländska nycklar kan påverka prestanda, särskilt med stora bord. Överväg att använda index för att förbättra frågeställningen.
* databasesystemspecifik syntax: Se till att konsultera dokumentationen för ditt specifika databashanteringssystem (DBMS) för exakt syntax.
Låt mig veta om du vill se exempel i ett visst databassystem. Jag är glad att ge mer specifika instruktioner!