FOREIGN KEYS
apenas certifique-se de que seus dados sejam consistentes.
Eles não melhoram as consultas em termos de eficiência, apenas fazem com que algumas consultas erradas falhem.
Se você tem um relacionamento como este:
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))
, então você não poderá excluir um department
se ele tiver algum employee
.
Se você fornecer ON DELETE CASCADE
a FOREIGN KEY
definição, as linhas de referência serão excluídas automaticamente junto com as referenciadas.
Como uma restrição, FOREIGN KEY
na verdade retarda um pouco as consultas.
Verificação extra precisa ser realizada ao excluir de uma tabela referenciada ou inserir em uma referência.