41 lines
1.3 KiB
SQL
41 lines
1.3 KiB
SQL
-- schema de Base de données pour la gestion d'une compagnie aérienne.
|
|
CREATE SCHEMA aerocremi;
|
|
SET search_path TO aerocremi, public;
|
|
|
|
CREATE TABLE aerocremi.avion(
|
|
-- Je pars du principe que le numéro de série est donné par le fabricant
|
|
-- de l'avion et qu'il ne contient que des chiffres. Il ne peut donc pas
|
|
-- être du type serial.
|
|
num_serie integer NOT NULL,
|
|
type text NOT NULL,
|
|
capacite integer NOT NULL,
|
|
PRIMARY KEY (num_serie)
|
|
);
|
|
|
|
CREATE TABLE aerocremi.pilote(
|
|
matricule serial NOT NULL,
|
|
nom text NOT_NULL,
|
|
anciennete date,
|
|
PRIMARY KEY (matricule)
|
|
);
|
|
|
|
CREATE TABLE aerocremi.vol(
|
|
num_vol text NOT NULL,
|
|
-- Je part du principe qu'il faut gérer les times zones sur les horaires
|
|
-- de vol (logique pour une compagnie aérienne)
|
|
-- https://www.postgresql.org/docs/current/static/datatype-datetime.html
|
|
heure_depart time with time zone NOT NULL,
|
|
heure_arrivee time with time zone NOT NULL,
|
|
PRIMARY_KEY (num_vol)
|
|
);
|
|
|
|
CREATE TABLE aerocremi.planning(
|
|
num_planning serial NOT NULL,
|
|
num_vol text NOT NULL,
|
|
matricule integer NOT NULL,
|
|
date_vol date NOT NULL
|
|
PRIMARY KEY (num_planning),
|
|
FOREIGN KEY num_vol REFERENCES aerocremi.vol(num_vol),
|
|
FOREIGN KEY num_avion REFERENCES aerocremi.avion(num_serie),
|
|
FOREIGN KEY matricule REFERENCES aecrocremi.pilote(matricule)
|
|
);
|