1
DROP DATABASE IF EXISTS gestion_universitaire;
CREATE DATABASE gestion_universitaire
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
USE gestion_universitaire;
-- ===========================
-- TABLE RESPONSABLE
-- ===========================
CREATE TABLE responsable(
id_responsable INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(100) NOT NULL,
prenom VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
mot_de_passe VARCHAR(255) NOT NULL,
role ENUM('Administrateur','Responsable') DEFAULT 'Responsable',
date_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- ===========================
-- TABLE ETUDIANT
-- ===========================
CREATE TABLE etudiant(
id_etudiant INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(100) NOT NULL,
prenom VARCHAR(100) NOT NULL,
date_naissance DATE NOT NULL,
email VARCHAR(100),
telephone VARCHAR(20),
statut ENUM('actif','inactif') DEFAULT 'actif'
);
2
-- ===========================
-- TABLE PROGRAMME
-- ===========================
CREATE TABLE programme(
id_programme INT AUTO_INCREMENT PRIMARY KEY,
nom_programme VARCHAR(150) NOT NULL,
duree VARCHAR(50),
type ENUM('formation initiale','formation continue')
);
-- ===========================
-- TABLE SPECIALISATION
-- ===========================
CREATE TABLE specialisation(
id_specialisation INT AUTO_INCREMENT PRIMARY KEY,
nom_specialisation VARCHAR(150) NOT NULL,
id_programme INT NOT NULL,
FOREIGN KEY(id_programme)
REFERENCES programme(id_programme)
ON UPDATE CASCADE
ON DELETE CASCADE
);
-- ===========================
-- TABLE NIVEAU
-- ===========================
CREATE TABLE niveau(
id_niveau INT AUTO_INCREMENT PRIMARY KEY,
nom_niveau VARCHAR(50) NOT NULL
);
3
-- ===========================
-- TABLE INSCRIPTION
-- ===========================
CREATE TABLE inscription(
id_inscription INT AUTO_INCREMENT PRIMARY KEY,
date_inscription DATE NOT NULL,
annee_scolaire VARCHAR(20) NOT NULL,
statut ENUM('acceptée','en attente','refusée') DEFAULT 'en attente',
id_etudiant INT NOT NULL,
id_programme INT NOT NULL,
id_specialisation INT NOT NULL,
id_niveau INT NOT NULL,
id_responsable INT NOT NULL,
FOREIGN KEY(id_etudiant)
REFERENCES etudiant(id_etudiant)
ON UPDATE CASCADE
ON DELETE CASCADE,
FOREIGN KEY(id_programme)
REFERENCES programme(id_programme)
ON UPDATE CASCADE
ON DELETE CASCADE,
FOREIGN KEY(id_specialisation)
REFERENCES specialisation(id_specialisation)
ON UPDATE CASCADE
ON DELETE CASCADE,
FOREIGN KEY(id_niveau)
REFERENCES niveau(id_niveau)
ON UPDATE CASCADE
ON DELETE CASCADE,
4
FOREIGN KEY(id_responsable)
REFERENCES responsable(id_responsable)
ON UPDATE CASCADE
ON DELETE CASCADE
);
-- ===========================
-- TABLE REINSCRIPTION
-- ===========================
CREATE TABLE reinscription(
id_reinscription INT AUTO_INCREMENT PRIMARY KEY,
date_reinscription DATE NOT NULL,
annee_scolaire VARCHAR(20) NOT NULL,
statut ENUM('acceptée','en attente','refusée') DEFAULT 'en attente',
id_etudiant INT NOT NULL,
id_programme INT NOT NULL,
id_specialisation INT NOT NULL,
id_niveau INT NOT NULL,
id_responsable INT NOT NULL,
FOREIGN KEY(id_etudiant)
REFERENCES etudiant(id_etudiant)
ON UPDATE CASCADE
ON DELETE CASCADE,
FOREIGN KEY(id_programme)
REFERENCES programme(id_programme)
ON UPDATE CASCADE
ON DELETE CASCADE,
FOREIGN KEY(id_specialisation)
REFERENCES specialisation(id_specialisation)
5
ON UPDATE CASCADE
ON DELETE CASCADE,
FOREIGN KEY(id_niveau)
REFERENCES niveau(id_niveau)
ON UPDATE CASCADE
ON DELETE CASCADE,
FOREIGN KEY(id_responsable)
REFERENCES responsable(id_responsable)
ON UPDATE CASCADE
ON DELETE CASCADE
);
-- ===========================
-- INSERTION DES NIVEAUX
-- ===========================
INSERT INTO niveau(nom_niveau) VALUES
('L1'),
('L2'),
('L3'),
('M1'),
('M2');
-- ===========================
-- INSERTION DES PROGRAMMES
-- ===========================
INSERT INTO programme(nom_programme,duree,type) VALUES
('Informatique','3 ans','formation initiale'),
('Gestion','3 ans','formation initiale'),
('Droit','3 ans','formation initiale');
-- ===========================
6
-- INSERTION DES SPECIALISATIONS
-- ===========================
INSERT INTO specialisation(nom_specialisation,id_programme) VALUES
('Développement Web',1),
('Réseaux',1),
('Base de données',1),
('Comptabilité',2),
('Marketing',2),
('Droit Public',3),
('Droit Privé',3);
-- ===========================
-- RESPONSABLE PAR DEFAUT
-- ===========================
INSERT INTO responsable
(nom,prenom,email,mot_de_passe,role)
VALUES
(
'Admin',
'Principal',
'admin@[Link]',
'admin123',
'Administrateur'
);