-- ==============================
-- 📌 Tables globales
-- ==============================
-- Informations générales de l'école
CREATE TABLE IF NOT EXISTS ecole_config (
id INT AUTO_INCREMENT PRIMARY KEY,
nom_ecole VARCHAR(255) NOT NULL,
logo VARCHAR(255),
adresse TEXT,
email VARCHAR(150),
telephone VARCHAR(50),
statut ENUM('actif', 'inactif') DEFAULT 'actif',
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP,
date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
supprimer BOOLEAN DEFAULT FALSE,
date_suppression DATETIME
);
-- Rôles dynamiques
CREATE TABLE IF NOT EXISTS roles (
id INT AUTO_INCREMENT PRIMARY KEY,
nom_role VARCHAR(100) NOT NULL,
description TEXT,
statut ENUM('actif', 'inactif') DEFAULT 'actif',
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP,
date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
supprimer BOOLEAN DEFAULT FALSE,
date_suppression DATETIME
);
-- Utilisateurs
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
prenom VARCHAR(100),
nom VARCHAR(100),
email VARCHAR(150) UNIQUE,
mot_de_passe VARCHAR(255),
role_id INT,
statut ENUM('actif', 'inactif') DEFAULT 'actif',
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP,
date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
supprimer BOOLEAN DEFAULT FALSE,
date_suppression DATETIME,
FOREIGN KEY (role_id) REFERENCES roles(id)
);
-- Permissions des rôles
CREATE TABLE IF NOT EXISTS permissions (
id INT AUTO_INCREMENT PRIMARY KEY,
role_id INT,
module VARCHAR(100),
peut_ajouter BOOLEAN DEFAULT FALSE,
peut_modifier BOOLEAN DEFAULT FALSE,
peut_supprimer BOOLEAN DEFAULT FALSE,
peut_consulter BOOLEAN DEFAULT TRUE,
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP,
date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
supprimer BOOLEAN DEFAULT FALSE,
date_suppression DATETIME,
FOREIGN KEY (role_id) REFERENCES roles(id)
);
-- Années académiques
CREATE TABLE IF NOT EXISTS annees_academiques (
id INT AUTO_INCREMENT PRIMARY KEY,
annee VARCHAR(20) NOT NULL,
statut ENUM('active', 'inactive') DEFAULT 'inactive',
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP,
date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
supprimer BOOLEAN DEFAULT FALSE,
date_suppression DATETIME
);
-- ==============================
-- 📌 Tables Jardin d’enfants
-- ==============================
-- Sections Jardin d’enfants (ex : Petite Section, Grande Section)
CREATE TABLE IF NOT EXISTS jardin_sections (
id INT AUTO_INCREMENT PRIMARY KEY,
nom_section VARCHAR(100) NOT NULL,
description TEXT,
statut ENUM('actif', 'inactif') DEFAULT 'actif',
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP,
date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
supprimer BOOLEAN DEFAULT FALSE,
date_suppression DATETIME
);
-- Élèves Jardin d’enfants
CREATE TABLE IF NOT EXISTS jardin_eleves (
id INT AUTO_INCREMENT PRIMARY KEY,
prenom VARCHAR(100),
nom VARCHAR(100),
date_naissance DATE,
sexe ENUM('M', 'F'),
section_id INT,
annee_academique_id INT,
statut ENUM('actif', 'inactif') DEFAULT 'actif',
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP,
date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
supprimer BOOLEAN DEFAULT FALSE,
date_suppression DATETIME,
FOREIGN KEY (section_id) REFERENCES jardin_sections(id),
FOREIGN KEY (annee_academique_id) REFERENCES
annees_academiques(id)
);
-- Parents
CREATE TABLE IF NOT EXISTS parents (
id INT AUTO_INCREMENT PRIMARY KEY,
prenom VARCHAR(100),
nom VARCHAR(100),
email VARCHAR(150) UNIQUE,
telephone VARCHAR(50),
adresse TEXT,
statut ENUM('actif', 'inactif') DEFAULT 'actif',
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP,
date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
supprimer BOOLEAN DEFAULT FALSE,
date_suppression DATETIME
);
-- Association Élèves-Parents
CREATE TABLE IF NOT EXISTS jardin_eleves_parents (
id INT AUTO_INCREMENT PRIMARY KEY,
eleve_id INT,
parent_id INT,
lien_parente VARCHAR(50),
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP,
date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
supprimer BOOLEAN DEFAULT FALSE,
date_suppression DATETIME,
FOREIGN KEY (eleve_id) REFERENCES jardin_eleves(id),
FOREIGN KEY (parent_id) REFERENCES parents(id)
);
-- Paiements Jardin d’enfants
CREATE TABLE IF NOT EXISTS jardin_paiements (
id INT AUTO_INCREMENT PRIMARY KEY,
eleve_id INT,
montant DECIMAL(10,2),
date_paiement DATE,
moyen_paiement VARCHAR(50),
description TEXT,
statut ENUM('payé', 'partiel', 'non payé') DEFAULT 'non payé',
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP,
date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
supprimer BOOLEAN DEFAULT FALSE,
date_suppression DATETIME,
FOREIGN KEY (eleve_id) REFERENCES jardin_eleves(id)
);
-- Remarques (comportement, santé, etc.)
CREATE TABLE IF NOT EXISTS jardin_remarques (
id INT AUTO_INCREMENT PRIMARY KEY,
eleve_id INT,
remarque TEXT,
type_remarque VARCHAR(100), -- ex: 'Santé', 'Comportement',
'Présence'
date_remarque DATE,
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP,
date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
supprimer BOOLEAN DEFAULT FALSE,
date_suppression DATETIME,
FOREIGN KEY (eleve_id) REFERENCES jardin_eleves(id)
);