FOREIGN KEYS
assicurati solo che i tuoi dati siano coerenti.
Non migliorano le query in termini di efficienza, semplicemente fanno 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))
, quindi non è possibile eliminare a department
se ne ha alcuni employee
.
Se si fornisce ON DELETE CASCADE
la FOREIGN KEY
definizione, le righe di riferimento verranno eliminate automaticamente insieme a quelle di riferimento.
Come vincolo, in FOREIGN KEY
realtà rallenta un po 'le query.
È necessario eseguire un controllo aggiuntivo quando si elimina da una tabella di riferimento o si inserisce in una tabella di riferimento.