FOREIGN KEYS
Bare sørg for, at dine data er konsistente.
De forbedrer ikke forespørgsler i følelse af effektivitet, de får bare nogle forkerte forespørgsler til at mislykkes.
Hvis du har et forhold som dette:
CREATE TABLE department (id INT NOT NULL)
CREATE TABLE employee (id INT NOT NULL, dept_id INT NOT NULL, FOREIGN KEY (dept_id) REFERENCES department(id))
, så kan du ikke slette en department
hvis den har en employee
s.
Hvis du angiver ON DELETE CASCADE
til FOREIGN KEY
definition, vil de referencerækker blive slettet automatisk sammen med de refererede.
Som en begrænsning, FOREIGN KEY
sænker faktisk forespørgslerne lidt.
Der skal udføres ekstra kontrol, når du sletter fra en refereret tabel eller indsætter i en refererende tabel.