tables
This commit is contained in:
43
banque.md
43
banque.md
@@ -30,51 +30,12 @@ Voir les adresses des serveurs [postgreSQL](https://sources.neotech.fr/Universit
|
|||||||
|
|
||||||
Voir la syntaxe de [postgreSQL](syntaxe.md)
|
Voir la syntaxe de [postgreSQL](syntaxe.md)
|
||||||
|
|
||||||
### 1. Titulaires
|
|
||||||
|
|
||||||
Création de la table `holder`.
|
|
||||||
|
|
||||||
```sql
|
|
||||||
create table holder (
|
|
||||||
"id" bigint primary key generated always as identity,
|
|
||||||
"type" text,
|
|
||||||
"created_at" timestamp
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
- entier sur 64 bits : `bigint`
|
|
||||||
- clé primaire : `primary key`
|
|
||||||
- incrément automatique : `generated always as identity`
|
|
||||||
|
|
||||||
Création de la table `person`.
|
|
||||||
|
|
||||||
```sql
|
|
||||||
create table person (
|
|
||||||
"id" bigint primary key references holder(id),
|
|
||||||
"firstname" text,
|
|
||||||
"lastname" text,
|
|
||||||
"birthdate" date
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
- Créer un compte individuel pour _Françoise Zanetti_, née le 12 avril 1995.
|
- Créer un compte individuel pour _Françoise Zanetti_, née le 12 avril 1995.
|
||||||
- Créer une entreprise nommée _Boulangerie de Valorgue_, créée le 19 août 2014, numéro d’immatriculation FR19803269968.
|
- Créer une entreprise nommée _Boulangerie de Valorgue_, créée le 19 août 2014, numéro d’immatriculation FR19803269968.
|
||||||
- Ajouter un nouveau titulaire : _Justin Hébrard_ né le 11/03/1993.
|
- Ajouter un nouveau titulaire : _Justin Hébrard_ né le 11/03/1993.
|
||||||
|
|
||||||
```sql
|
|
||||||
create table company (
|
|
||||||
"id" bigint primary key references holder(id),
|
|
||||||
"name" text,
|
|
||||||
"creation_date" date
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
```sql
|
|
||||||
create table bank (
|
|
||||||
"id" bigint primary key references holder(id),
|
|
||||||
"name" text
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
insert into holder (type) values ('BANK') returning holder;
|
insert into holder (type) values ('BANK') returning holder;
|
||||||
@@ -97,9 +58,7 @@ Il existe deux méthodes pour gérer le type.
|
|||||||
|
|
||||||
2. utiliser une énumération `enum`.
|
2. utiliser une énumération `enum`.
|
||||||
|
|
||||||
```sql
|
|
||||||
create type holder_type as enum ('BANK', 'PERSON', 'COMPANY');
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 1.2 Vérifications
|
#### 1.2 Vérifications
|
||||||
|
|
||||||
|
|||||||
57
banque.tables.md
Normal file
57
banque.tables.md
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# Implémentation du modèle
|
||||||
|
|
||||||
|
## 1. Les titulaires (holder)
|
||||||
|
|
||||||
|
```sql
|
||||||
|
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.
|
||||||
|
|
||||||
|
```sql
|
||||||
|
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 bits
|
||||||
|
- `primary key` : clé primaire, identification unique de l'enregristrement
|
||||||
|
- `generated 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_timestamp` date **et** heure courante. Version moderne de `now()`
|
||||||
|
|
||||||
|
### 1.1 Les individus (person)
|
||||||
|
|
||||||
|
Création de la table `person`.
|
||||||
|
|
||||||
|
```sql
|
||||||
|
create table person (
|
||||||
|
"id" bigint primary key references holder(id),
|
||||||
|
"firstname" text,
|
||||||
|
"lastname" text,
|
||||||
|
"birthdate" date
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
### 1.2 les sociétés (company)
|
||||||
|
|
||||||
|
```sql
|
||||||
|
create table company (
|
||||||
|
"id" bigint primary key references holder(id),
|
||||||
|
"name" text,
|
||||||
|
"creation_date" date
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
### 1.3 La banque (bank)
|
||||||
|
|
||||||
|
```sql
|
||||||
|
create table bank (
|
||||||
|
"id" bigint primary key references holder(id),
|
||||||
|
"name" text
|
||||||
|
);
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user