FOREIGN KEYS
zorg er gewoon voor dat uw gegevens consistent zijn.
Ze verbeteren de zoekopdrachten niet in termen van efficiëntie, ze zorgen ervoor dat sommige verkeerde zoekopdrachten mislukken.
Als je zo'n relatie hebt:
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))
, dan kunt u een department
niet verwijderen als het een employee
. heeft 's.
Als u ON DELETE CASCADE
aanlevert naar de FOREIGN KEY
definitie, worden de verwijzende rijen automatisch verwijderd samen met de rijen waarnaar wordt verwezen.
Als beperking, FOREIGN KEY
vertraagt de zoekopdrachten eigenlijk een beetje.
Er moet extra controle worden uitgevoerd bij het verwijderen uit een tabel waarnaar wordt verwezen of bij het invoegen in een tabel waarnaar wordt verwezen.