1.6 KiB
1.6 KiB
Implémentation du modèle
1. Les titulaires (holder)
create type holder_type
as enum ('BANK', 'PERSON', 'COMPANY');
Création de la table holder. C'est une table commune à tous les titulaires qu'ils soient des individus ou des sociétés. Elle sert à donner un identifiant unique et défini le type de titulaire.
create table holder (
"id" bigint primary key generated always as identity,
"type" holder_type not null,
"created_at" timestamp not null default current_timestamp
);
bigint: entier sur 64 bitsprimary key: clé primaire, identification unique de l'enregristrementgenerated always as identity: incrémentation automatique (1, 2, 3, 4, ...)not null: Il est obligatoire de spécifier une valeur.- Le type est forcé aux 3 valeurs de l'énumération
holder_type current_timestampdate et heure courante. Version moderne denow()
1.1 Les individus (person)
Création de la table person.
create table person (
"id" bigint primary key references holder(id) on delete cascade,
"firstname" text not null,
"lastname" text not null,
"birthdate" date not null check (birthdate <= current_date - interval '15 years')
);
1.2 les sociétés (company)
create table company (
"id" bigint primary key references holder(id) on delete cascade,
"name" text not null,
"registration_number" text unique not null,
"creation_date" date not null
);
1.3 La banque (bank)
create table bank (
"id" bigint primary key references holder(id),
"name" text
);