En främmande nyckel länkar poster i en tabell till poster i en annan. En ordertabel har ett fält `customer_id`. Det fältet är en främmande nyckel som pekar till kundtabellens primärnyckel. Länken säkerställer att varje order tillhör en riktig kund. Utan den skulle ordrar kunna referera till kunder som inte existerar. Databasen upprätthåller relationen.
Främmande nycklar gör mer än att dokumentera relationer. De tillämpar referensintegritet. Om du försöker infoga en order med ett customer_id som inte finns i kundtabellen, avvisar databasen den. Om du försöker ta bort en kund som har ordrar, blockerar databasen antingen borttagningen eller kaskadbehandlar den beroende på regeln. Den tillämpningen förhindrar överblivna poster och inkonsekvent data. Främmande nycklar hjälper också till med frågeprestanda. Databasen kan använda relationen för att optimera kopplingar. Inte alla databaser tillämpar främmande nycklar. Vissa NoSQL-databaser lämnar referensintegritet till applikationen. Det ger utvecklare mer flexibilitet men också mer ansvar. Applikationen måste säkerställa att referenserna är giltiga. Om det misslyckas blir data inkonsekventa. Främmande nycklar är en begränsning. Begränsningar är obekväma tills de förhindrar en katastrof.
Regler för främmande nyckel
- Begränsa — blockera borttagning om referenser finns
- Kaskad — ta bort eller uppdatera refererande poster automatiskt
- Ange null — ange den främmande nyckeln till null vid radering
- Ingen åtgärd — tillåt åtgärden och kontrollera senare
En främmande nyckel är en länk och en garanti. Länken kopplar samman tabeller. Garantin håller dem konsistenta.
Comments
No comments yet. Be the first to share a thought.
Leave a comment