Her er en omfattende guide for hvordan du bruker utenlandske nøkler i en database, inkludert eksempler og hensyn:
Forstå utenlandske nøkler
* Formål: Utenlandske nøkler håndhever forhold mellom tabeller i en relasjonsdatabase. De sikrer dataintegritet ved å forhindre ugyldige dataoppføringer.
* hvordan det fungerer: En fremmed nøkkelkolonne i en tabell refererer til den primære nøkkelkolonnen i en annen tabell. Dette oppretter en kobling, som sikrer at verdiene i den utenlandske nøkkelkolonnen eksisterer som gyldige primære nøkkelverdier i den refererte tabellen.
trinn for å bruke en fremmed nøkkel
1. Definer tabellene:
* Foreldrebord: Tabellen som inneholder den primære tasten (tabellen som refereres til).
* Barnebord: Tabellen som inneholder den utenlandske nøkkelen (tabellen som refererer til overordnede tabellen).
2. spesifiser kolonnene:
* Primærnøkkel: Kolonnen i overordnet tabell som fungerer som den primære nøkkelen.
* utenlandsk nøkkel: Kolonnen i barnebordet som refererer til den primære nøkkelen.
3. Opprett begrensningen: Syntaksen varierer litt avhengig av databasesystemet ditt (MySQL, PostgreSQL, SQL Server, etc.). Her er en generell tilnærming:
`` SQL
Endre tabell barnestabler
Legg til begrensningsbegrensningsnavn
Utenlandsk nøkkel (Foreignkeycolumn)
Referanser ParentTablename (PrimaryKycolumn);
`` `
* begrensningsnavn: En unik identifikator for begrensningen.
* ChildtableName: Navnet på tabellen som inneholder den utenlandske nøkkelen.
* Foreignkeycolumn: Navnet på kolonnen i barnebordet som fungerer som den utenlandske nøkkelen.
* ParentTablename: Navnet på tabellen som inneholder den primære tasten.
* primærkeycolumn: Navnet på kolonnen i overordnet tabell som fungerer som den primære nøkkelen.
eksempler
scenario: Opprette en database for et bibliotek. Vi har et bord for "bøker" og et bord for "låntakere".
tabeller:
* bøker:
* `BOOK_ID` (Primærnøkkel)
* `tittel`
* `Forfatter`
* låntakere:
* `låntaker_id` (primærnøkkel)
* `Navn`
* `adresse`
* `Book_id` (utenlandsk nøkkel, refererer til` Book_id` i Books -tabellen)
SQL -kode:
`` SQL
- Lag bøketabellen
Lag bordbøker (
BOOK_ID INT Primærnøkkel,
tittelen varchar (255),
Forfatter varchar (255)
);
- Lag låntakerbordet med den utenlandske nøkkelbegrensningen
Lag bordlånere (
låntaker_id int primærnøkkel,
Navn varchar (255),
adresse varchar (255),
BOOK_ID INT,
Utenlandsk nøkkel (Book_id) Referanser bøker (Book_id)
);
`` `
Nøkkelhensyn
* Dataintegritet: Utenlandske nøkler er med på å sikre at data i relaterte tabeller forblir konsistente. Du kan for eksempel ikke sette inn en låntakerplate med en `Book_id` som ikke eksisterer i` Books` -tabellen.
* Kaskadealternativer: Du kan definere hvordan utenlandske nøkkelbegrensninger skal oppføre seg når data blir endret eller slettet i overordnede tabellen.
* Cascade Delete: Sletter rader i barnebordet når en matchende rad i overordnede tabellen blir slettet.
* Kaskadeoppdatering: Oppdateringer relaterte rader i barnebordet når den tilsvarende raden i overordnede tabellen er oppdatert.
* ytelse: Utenlandske nøkler kan påvirke ytelsen, spesielt med store bord. Vurder å bruke indekser for å forbedre spørringshastigheten.
* databasesystemspesifikk syntaks: Sørg for å konsultere dokumentasjonen for ditt spesifikke databaseadministrasjonssystem (DBMS) for presis syntaks.
Gi meg beskjed hvis du vil se eksempler i et bestemt databasesystem. Jeg gir gjerne mer spesifikke instruksjoner!