En las clases anteriores aprendimos a identificar entidades, atributos, claves primarias, relaciones y formas normales. También aprendimos a crear tablas con CREATE TABLE, tipos de datos y restricciones.

Ahora damos un paso fundamental: conectar las tablas entre sí mediante claves foráneas y hacer que PostgreSQL controle que esas conexiones sean válidas.

Idea central: una clave primaria identifica un registro; una clave foránea conecta ese registro con otro registro de otra tabla.


1. ¿Qué problema resuelven las claves foráneas?

Imagina que tenemos esta tabla:

clientes

cliente_id nombre
1 María
2 Juan
3 Ana

Y posteriormente registramos un pedido:

pedido_id cliente_id
1001 1

Tiene sentido porque el cliente 1 existe.

Pero ¿qué pasa si registramos?

pedido_id cliente_id
1002 999

El cliente 999 no existe.

Sin una clave foránea, la base de datos podría aceptar ese registro. Tendríamos entonces un pedido que apunta a un cliente inexistente.

Ese es precisamente el tipo de problema que queremos evitar.


2. ¿Qué es una clave foránea?

Una clave foránea (Foreign Key o FK) es una columna de una tabla que hace referencia a la clave primaria de otra tabla.

Por ejemplo: