sql >> Databasteknik >  >> RDS >> Mysql

Främmande nycklar när kaskader inte behövs

Svaren på denna fråga kan faktiskt också gälla din fråga.

Om du har kolumner i tabeller som refererar till rader i andra tabeller, bör du alltid använda främmande nycklar, eftersom även om du tror att du "inte behöver" funktionerna som erbjuds av dessa kontroller, kommer det fortfarande att hjälpa till att garantera dataintegriteten i fall du glömde en check i din egen kod.

Prestandapåverkan av kontroller av främmande nyckel är försumbar i de flesta fall (se länken ovan), eftersom relationsdatabaser använder mycket optimerade algoritmer för att utföra dem (de är trots allt en nyckelfunktion eftersom det är det som faktiskt definierar relationer mellan enheter).

En annan stor fördel med FK:er är att de också hjälper andra att förstå layouten på din databas.

Redigera: Eftersom frågan som länkas ovan syftar på SQL-Server, här är ett med svar av mycket liknande slag för MySQL:Minskar införandet av främmande nycklar till MySQL prestandan



  1. Generera ERD för en befintlig databas

  2. Parameter Sniffing Primer

  3. Vad är skillnaden mellan (*) och .* i regexp?

  4. Dataanalys vs. datavetenskap:Vad är skillnaden?