Her er en omfattende guide til, hvordan man anvender udenlandske nøgler i en database, inklusive eksempler og overvejelser:
Forståelse af udenlandske nøgler
* Formål: Udenlandske nøgler håndhæver forhold mellem tabeller i en relationel database. De sikrer dataintegritet ved at forhindre ugyldige dataindgange.
* hvordan det fungerer: En fremmed nøglekolonne i en tabel refererer til den primære nøglekolonne i en anden tabel. Dette skaber et link, der sikrer, at værdierne i den udenlandske nøglekolonne findes som gyldige primære nøgleværdier i den refererede tabel.
trin for at anvende en fremmed nøgle
1. Definer tabellerne:
* forældertabel: Tabellen, der indeholder den primære nøgle (den tabel, der henvises til).
* Børnebord: Tabellen, der indeholder den udenlandske nøgle (tabellen, der refererer til overordnet tabel).
2. Angiv kolonnerne:
* Primær nøgle: Kolonnen i overordnet bord, der fungerer som den primære nøgle.
* udenlandsk nøgle: Kolonnen i børnebordet, der refererer til den primære nøgle.
3. Opret begrænsningen: Syntaks varierer lidt afhængigt af dit databasesystem (MySQL, PostgreSQL, SQL Server osv.). Her er en generel tilgang:
`` `sql
Alter tabel ChildTableName
Tilføj begrænsningsbegrænsningsnavn
Udenlandsk nøgle (udenrigskeycolumn)
Referencer ParentTableName (PrimaryKeyColumn);
`` `
* begrænsningsnavn: En unik identifikator for begrænsningen.
* ChildTableName: Navnet på bordet, der indeholder den udenlandske nøgle.
* Udenrigskeycolumn: Navnet på søjlen i børnebordet, der fungerer som den udenlandske nøgle.
* parentTableName: Navnet på tabellen, der indeholder den primære nøgle.
* PrimaryKeyColumn: Navnet på kolonnen i overordnet bord, der fungerer som den primære nøgle.
Eksempler
Scenario: Oprettelse af en database til et bibliotek. Vi har et bord til "bøger" og en tabel til "låntagere".
Tabeller:
* bøger:
* `book_id` (primær nøgle)
* `titel '
* 'Forfatter'
* låntagere:
* `låntager_id` (primær nøgle)
* 'Navn'
* 'Adresse'
* `book_id` (udenlandsk nøgle, refererer til` book_id` i bøger -tabellen)
SQL -kode:
`` `sql
- Opret bøgertabellen
Opret bordbøger (
Book_id int primær nøgle,
Titel Varchar (255),
Forfatter Varchar (255)
);
- Opret låntabellen med den udenlandske nøglebegrænsning
Opret bordlåntagere (
låntager_id int primær nøgle,
Navn varchar (255),
Adresse Varchar (255),
Book_id int,
Udenlandske nøgle (Book_ID) Referencer Books (Book_ID)
);
`` `
Nøgleovervejelser
* Dataintegritet: Udenlandske nøgler hjælper med at sikre, at data i relaterede tabeller forbliver konsistente. For eksempel kan du ikke indsætte en låntagerrekord med en 'bog_id', der ikke findes i tabellen 'bøger'.
* Kaskadeindstillinger: Du kan definere, hvordan udenlandske nøglebegrænsninger skal opføre sig, når data ændres eller slettes i overordnet bord.
* kaskade Slet: Sletter rækker i børnebordet, når en matchende række i overordnet bordet slettes.
* Cascade -opdatering: Opdateringer Relaterede rækker i børnebordet, når den tilsvarende række i overordnet bordet opdateres.
* ydelse: Udenlandske nøgler kan påvirke ydeevnen, især med store borde. Overvej at bruge indekser til at forbedre forespørgselshastigheden.
* databasesystemspecifik syntaks: Sørg for at konsultere dokumentationen for dit specifikke databasestyringssystem (DBMS) for præcis syntaks.
Lad mig vide, om du gerne vil se eksempler i et bestemt databasesystem. Jeg er glad for at give mere specifikke instruktioner!