96 lines
2.5 KiB
SQL
96 lines
2.5 KiB
SQL
CREATE DATABASE db IF NOT EXIST;
|
|
|
|
USE db;
|
|
|
|
CREATE TABLE t_aeroport(
|
|
aeroport_id INT AUTO_INCREMENT,
|
|
code_iata CHAR(3),
|
|
code_icao CHAR(4),
|
|
nom VARCHAR(50),
|
|
PRIMARY KEY(aeroport_id),
|
|
UNIQUE(code_icao)
|
|
);
|
|
|
|
CREATE TABLE t_compagnie(
|
|
compagnie_id INT AUTO_INCREMENT,
|
|
code_iata CHAR(2),
|
|
nom VARCHAR(30),
|
|
aeroport_fk INT NOT NULL,
|
|
PRIMARY KEY(compagnie_id),
|
|
FOREIGN KEY(aeroport_fk) REFERENCES t_aeroport(aeroport_id)
|
|
);
|
|
|
|
CREATE TABLE t_type_avion(
|
|
type_avion_id INT AUTO_INCREMENT,
|
|
nom VARCHAR(50),
|
|
description TEXT,
|
|
PRIMARY KEY(type_avion_id)
|
|
);
|
|
|
|
CREATE TABLE t_avion(
|
|
avion_id INT AUTO_INCREMENT,
|
|
capacite INT,
|
|
compagnie_fk INT NOT NULL,
|
|
type_avion_fk INT NOT NULL,
|
|
PRIMARY KEY(avion_id),
|
|
FOREIGN KEY(compagnie_fk) REFERENCES t_compagnie(compagnie_id),
|
|
FOREIGN KEY(type_avion_fk) REFERENCES t_type_avion(type_avion_id)
|
|
);
|
|
|
|
CREATE TABLE t_programme_vol(
|
|
numero_vol CHAR(8),
|
|
heure_depart TIME,
|
|
heure_arrivee TIME,
|
|
lundi TINYINT,
|
|
mardi TINYINT,
|
|
mercredi TINYINT,
|
|
jeudi TINYINT,
|
|
vendredi TINYINT,
|
|
samedi TINYINT,
|
|
dimanche TINYINT,
|
|
compagnie_fk INT NOT NULL,
|
|
aeroport_arrivee_fk INT NOT NULL,
|
|
aeroport_depart_fk INT NOT NULL,
|
|
PRIMARY KEY(numero_vol),
|
|
FOREIGN KEY(compagnie_fk) REFERENCES t_compagnie(compagnie_id),
|
|
FOREIGN KEY(aeroport_arrivee_fk) REFERENCES t_aeroport(aeroport_id),
|
|
FOREIGN KEY(aeroport_depart_fk) REFERENCES t_aeroport(aeroport_id)
|
|
);
|
|
|
|
CREATE TABLE t_passager(
|
|
passager_id INT AUTO_INCREMENT,
|
|
numero_passeport CHAR(9),
|
|
nom VARCHAR(100),
|
|
prenom VARCHAR(100),
|
|
PRIMARY KEY(passager_id),
|
|
UNIQUE(numero_passeport)
|
|
);
|
|
|
|
CREATE TABLE t_vol(
|
|
vol_id INT AUTO_INCREMENT,
|
|
heure_depart TIME,
|
|
heure_arrivee TIME,
|
|
avion_fk INT NOT NULL,
|
|
compagnie_fk INT NOT NULL,
|
|
aeroport_arrivee_fk INT NOT NULL,
|
|
aeroport_depart_fk INT NOT NULL,
|
|
numero_vol_fk CHAR(8) NOT NULL,
|
|
PRIMARY KEY(vol_id),
|
|
FOREIGN KEY(avion_fk) REFERENCES t_avion(avion_id),
|
|
FOREIGN KEY(compagnie_fk) REFERENCES t_compagnie(compagnie_id),
|
|
FOREIGN KEY(aeroport_arrivee_fk) REFERENCES t_aeroport(aeroport_id),
|
|
FOREIGN KEY(aeroport_depart_fk) REFERENCES t_aeroport(aeroport_id),
|
|
FOREIGN KEY(numero_vol_fk) REFERENCES t_programme_vol(numero_vol)
|
|
);
|
|
|
|
CREATE TABLE t_reservation(
|
|
reservation_id INT AUTO_INCREMENT,
|
|
siege CHAR(4),
|
|
prix DECIMAL(10,2),
|
|
passager_fk INT NOT NULL,
|
|
vol_fk INT NOT NULL,
|
|
PRIMARY KEY(reservation_id),
|
|
FOREIGN KEY(passager_fk) REFERENCES t_passager(passager_id),
|
|
FOREIGN KEY(vol_fk) REFERENCES t_vol(vol_id)
|
|
);
|