0% found this document useful (0 votes)
14 views4 pages

Base de Donnes

Uploaded by

yoyouisuii77
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
0% found this document useful (0 votes)
14 views4 pages

Base de Donnes

Uploaded by

yoyouisuii77
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1/ 4

CREATE DATABASE IF NOT EXISTS `pfe` !

40100 DEFAULT CHARACTER SET utf8mb4 COLLATE


utf8mb4_0900_ai_ci !80016 DEFAULT ENCRYPTION='N' ;
USE `pfe`;

CREATE TABLE IF NOT EXISTS `reclamation` (


`id` int NOT NULL AUTO_INCREMENT,
`sujet` varchar(255) NOT NULL DEFAULT '0',
`contenue` varchar(1000) NOT NULL DEFAULT '0',
`departement_concerne` varchar(1000) CHARACTER SET utf8mb4 COLLATE
utf8mb4_0900_ai_ci NOT NULL DEFAULT '0',
`id_fonctionnel` varchar(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_0900_ai_ci;

/************************************************/
/************************************************/
/************************************************/
/************************************************/
/************************************************/

CREATE TABLE user (


id int(11) NOT NULL AUTO_INCREMENT,
username varchar(50) NOT NULL,
password varchar(255) NOT NULL,
email varchar(100) NOT NULL,
role varchar(50) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY email (email)
);

*************************************************/

CREATE TABLE departement (


id int(11) NOT NULL AUTO_INCREMENT,
nom varchar(100) NOT NULL,
chef_departement_id int(11) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (chef_departement_id) REFERENCES user(id)
);

**************************************************

CREATE TABLE service (


id int(11) NOT NULL AUTO_INCREMENT,
nom varchar(100) NOT NULL,
departement_id int(11) DEFAULT NULL,
chef_service_id int(11) DEFAULT NULL,
PRIMARY KEY (id),
FOREIGN KEY (departement_id) REFERENCES departement(id),
FOREIGN KEY (chef_service_id) REFERENCES user(id)
);

*************************************************
CREATE TABLE reclamation (
id int(11) NOT NULL AUTO_INCREMENT,
id_fonctionnel varchar(20) NOT NULL,
nom_client varchar(50) NOT NULL,
telephone varchar(20) NOT NULL,
email varchar(50) NOT NULL,
category varchar(20) NOT NULL,
status varchar(20) NOT NULL,
description text,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
agent_id int(11) NOT NULL,
departement_id int(11) NOT NULL,
service_id int (11) Not null
PRIMARY KEY (id),
FOREIGN KEY (agent_id) REFERENCES user(id),
FOREIGN KEY (departement_id) REFERENCES departement(id)
FOREIGN KEY (service_id) REFERENCES service(id)

);

/**********************************************

CREATE TABLE intervention (


id int(11) NOT NULL AUTO_INCREMENT,
titre varchar(20) NOT NULL,
status varchar(20) NOT NULL,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
description text,
createur_id int(11) DEFAULT NULL,
reclamation_id int(11) DEFAULT NULL,
departement_id int(11) NOT NULL,
service_id int (11) Not NULL
PRIMARY KEY (id),
FOREIGN KEY (createur_id) REFERENCES User(id),
FOREIGN KEY (reclamation_id) REFERENCES reclamation(id),
FOREIGN KEY (departement_id) REFERENCES departement(id)
FOREIGN KEY (service_id) REFERENCES service(id);
);

**************************************************

CREATE TABLE intervention_historique (


id INT AUTO_INCREMENT PRIMARY KEY,
intervention_id INT NOT NULL,
titre VARCHAR(20) NOT NULL,
status VARCHAR(20) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
intervention_created TIMESTAMP,
description text,
createur_id INT DEFAULT NULL,
reclamation_id INT DEFAULT NULL,
departement_id INT NOT NULL,
service_id int (11) Not NULL,
change_par INT NOT NULL,
FOREIGN KEY (createur_id) REFERENCES User(id),
FOREIGN KEY (reclamation_id) REFERENCES reclamation(id),
FOREIGN KEY (departement_id) REFERENCES departement(id),
FOREIGN KEY (service_id) REFERENCES service(id);
FOREIGN KEY (change_par) REFERENCES User(id),
FOREIGN KEY (intervention_id) REFERENCES Intervention(id)
);

*************************************************

CREATE TABLE intervention_services (


intervention_id int(11) NOT NULL,
service_id int(11) NOT NULL,
PRIMARY KEY (intervention_id, service_id),
FOREIGN KEY (intervention_id) REFERENCES intervention(id),
FOREIGN KEY (service_id) REFERENCES service(id)
);

*************************************************

CREATE TABLE intervention_techniciens (


intervention_id int(11) NOT NULL,
technicien_id int(11) NOT NULL,
PRIMARY KEY (intervention_id, technicien_id),
FOREIGN KEY (intervention_id) REFERENCES intervention(id),
FOREIGN KEY (technicien_id) REFERENCES user(id)
);

*************************************************

SELECT
i.id,
i.titre,
i.status,
i.created_at,
i.description,
i.createur_id,
i.reclamation_id,
i.departement_id,
GROUP_CONCAT(s.nom SEPARATOR ', ') AS service
FROM
intervention i
JOIN
intervention_services its ON i.id = its.intervention_id
JOIN
service s ON its.service_id = s.id
GROUP BY
i.id;

You might also like