Enum Type
PostgreSQL 🟢 JuniorDefinition
Type personnalise definissant un ensemble fixe de valeurs autorisees. Plus performant et type-safe qu'une contrainte CHECK sur un VARCHAR.
Analogie
Un menu deroulant avec des options figees : tu ne peux choisir que ce qui est propose.
Exemple de code
CREATE TYPE mood AS ENUM (
'happy', 'sad', 'neutral'
);
CREATE TABLE entries (
id SERIAL PRIMARY KEY,
feeling mood NOT NULL
);
Cas d'usage
Definir des statuts, roles ou categories avec un nombre fini de valeurs connues a l'avance.
Anti-pattern
Creer un enum pour des valeurs qui changent souvent, car ajouter/supprimer des valeurs est lourd.