From 8be8d2b39a5169af09ec6c6aa7f4e71b06ad441e Mon Sep 17 00:00:00 2001 From: "e.medina" Date: Fri, 7 Nov 2025 11:11:08 +0100 Subject: [PATCH] enum --- banque.md | 7 +++++++ banque.sql | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/banque.md b/banque.md index a8606aa..3ead1a3 100644 --- a/banque.md +++ b/banque.md @@ -412,6 +412,13 @@ erDiagram - La suppression d’un `holder` doit supprimer automatiquement la ligne correspondante dans `person` ou `company`. - Le type doit être contraint à `'PERSON'` ou `'COMPANY'`. +Il existe deux méthodes pour gérer le type. + +1. vérifier par la commande `CHECK` la validité de la valeur. + +2. utiliser une énumération `enum`. + + #### 1.2 Vérifications - Lister tous les titulaires. Pour réutiliser rapidement la requête enregistrer la dans une vue. diff --git a/banque.sql b/banque.sql index d593176..e65fd41 100644 --- a/banque.sql +++ b/banque.sql @@ -5,9 +5,11 @@ set search_path TO bank; /* * Holder : table commune à tous les titulaires */ +create type holder_type as enum ('PERSON', 'COMPANY'); + create table holder ( "id" bigint primary key generated always as identity, -- identifiant unique - "type" text not null check ("type" in ('PERSON', 'COMPANY')), + "type" holder_type not null, "created_at" timestamp not null default now() -- date de création );