fremmednøgler
håndhæve henvisningsintegritet
. Disse begrænsninger garanterer, at en række i en tabel order_details
med et felt order_id
henviser til en orders
tabel vil aldrig have et order_id
værdi, der ikke findes i orders
bord.
Fremmednøgler er ikke påkrævet for at have en fungerende relationsdatabase (faktisk MySQL's standardlager motoren understøtter ikke FK'er), men de er absolut vigtige for at undgå brudte relationer og forældreløse rækker (dvs. referentiel integritet). Evnen til at håndhæve referenceintegritet på databaseniveau er påkrævet for C i ACID at stå.
Hvad angår dine bekymringer vedrørende ydeevne, er der generelt en præstationsomkostning, men den vil sandsynligvis være ubetydelig. Jeg foreslår, at du indsætter alle dine fremmednøglebegrænsninger og kun eksperimenterer uden dem, hvis du har reelle problemer med ydeevnen, som du ikke kan løse ellers.