FOREIGN KEYS
solo asegúrese de que sus datos sean consistentes.
No mejoran las consultas en términos de eficiencia, solo hacen que algunas consultas incorrectas fallen.
Si tienes una relación como esta:
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))
, entonces no puede eliminar un department
si tiene algunos employee
.
Si proporciona ON DELETE CASCADE
a la FOREIGN KEY
definición, las filas de referencia se eliminarán automáticamente junto con las referenciadas.
Como restricción, en FOREIGN KEY
realidad ralentiza un poco las consultas.
Es necesario realizar una verificación adicional al eliminar de una tabla de referencia o insertar en una de referencia.