FOREIGN KEY
PostgreSQL 🟢 JuniorDefinition
Contrainte referentielle qui garantit qu'une valeur dans une table existe dans la table reference. Supporte ON DELETE CASCADE, SET NULL et RESTRICT.
Analogie
Un lien hypertexte garanti : il est impossible de pointer vers une page qui n'existe pas.
Exemple de code
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
user_id INT NOT NULL
REFERENCES users(id)
ON DELETE CASCADE
);
Cas d'usage
Maintenir l'integrite referentielle entre les tables, comme les commandes liees aux utilisateurs.
Anti-pattern
Omettre les foreign keys pour 'gagner en perf', puis se retrouver avec des donnees orphelines.