FOREIGN KEYS
assicurati solo che i tuoi dati siano coerenti.
Non migliorano le query in termini di efficienza, fanno solo fallire alcune query sbagliate.
Se hai una relazione come questa:
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))
, non puoi eliminare un department
se ha qualche employee
's.
Se fornisci ON DELETE CASCADE
alla FOREIGN KEY
definizione, le righe di riferimento verranno eliminate automaticamente insieme a quelle referenziate.
Come vincolo, FOREIGN KEY
in realtà rallenta un po' le query.
È necessario eseguire un controllo aggiuntivo durante l'eliminazione da una tabella referenziata o l'inserimento in una tabella di riferimento.