cours/content/bdd/1-introduction/files/schema_avions.sql
2018-10-12 23:06:04 +02:00

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