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 );