Considera las tablas:
Personas, Vehículos y Viviendas, todas ellas relacionadas con una tabla Seguros
(son los distintos tipos de seguros que ofrece la empresa)
Ahora tengo que crear un procedimiento que elimine un seguro determinado.
Gracias a que las tablas están relacionadas mediante foreign keys, lo que hice fue añadirles a cada foreign key la restricción ON DELETE CASCADE, la cual me asegura que al eliminar un registro de la tabla padre (seguros), se eliminarán automáticamente todos los registros relacionados en las tablas hijas (tipos de seguro).
El haber utilizado foreign keys me ahorró muchísimo tiempo. Ni sé cuantas vueltas habría tenido que dar para poder eliminar completamente un seguro de no ser por la restricción ON DELETE CASCADE propia de las foreign keys.
A lo que voy, siempre (al menos eso creo...) puedes trabajar sin utilizar ninguna foreign key, pero a la hora de andar haciendo actualizaciones, eliminando registros, etc., desearás haberlo hecho.
PD: En cuanto a las típicas respuestas de forero aburrido y prepotente, ya me he topado con esa clase de individuos. Dale la espalda a los soberbios, son estúpidos, pues no son capaces de comprender su propia ignorancia. No existe nadie en el mundo que "se las sepa todas", siempre nos va faltar algo por conocer, en todos los órdenes de la vida. Aparte que por algún lado se empieza; y haciendo preguntas es un muy buen comienzo.
A mi ya me han tratado de "jodido vago" y "parásito" en otro lado
Las cosas que se pueden llegar a leer por acá son increíbles... jaja
OK, ¿Y si usas el foreign key pero
sin "ON DELETE CASCADE" (ni ON UPDATE CASCADE) Entonces que efectos se observan?