sql >> Database teknologi >  >> RDS >> Mysql

Hvorfor skal jeg bruge fremmednøgle, hvis jeg kan bruge WHERE?

Det er ikke strengt nødvendigt for forespørgslen, det er sandt. Det findes af flere årsager:

  1. Som en begrænsning på bordet for at forhindre dig i at indsætte noget, der ikke peger på noget;
  2. Som et fingerpeg til optimeringsværktøjet; og
  3. Af historiske årsager var det mere nødvendigt.

(1) er sandsynligvis den vigtige af de tre. Dette kaldes henvisningsintegritet . Det betyder, at hvis der er en værdi i en fremmednøgle, vil der være en tilsvarende post med denne værdi som en primær nøgle i den overordnede tabel.

Når det er sagt, understøtter ikke alle databaser referentiel integritet (f.eks. MySQL/MyISAM-tabeller), og de, der gør det, håndhæver det ikke nødvendigvis (af ydeevnemæssige årsager).



  1. SQL SERVER – Trick – Kørsel af SSMS med forskellige Windows-kontoer

  2. Eksporter SQLite-database til XML-fil

  3. Sådan returnerer du positionen for et listeelement i MySQL

  4. Mysql hvordan man forbinder tabeller