2025-10-27 15:45:06 +01:00

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