157 lines
7.6 KiB
SQL
157 lines
7.6 KiB
SQL
-- Création de la base de données et sélection
|
|
CREATE DATABASE IF NOT EXISTS user;
|
|
USE user;
|
|
|
|
SET NAMES utf8mb4;
|
|
|
|
-- Table `utilisateur`
|
|
CREATE TABLE IF NOT EXISTS `utilisateur` (
|
|
`id` INT NOT NULL AUTO_INCREMENT,
|
|
`nom` VARCHAR(100) NOT NULL,
|
|
`prenom` VARCHAR(100) NOT NULL,
|
|
`sexe` ENUM('Homme', 'Femme', 'Autre') NOT NULL,
|
|
`age` INT DEFAULT NULL,
|
|
`date_naissance` DATE NOT NULL,
|
|
`identifiant` VARCHAR(50) NOT NULL UNIQUE,
|
|
`email` VARCHAR(255) NOT NULL UNIQUE,
|
|
`mot_de_passe` VARCHAR(255) NOT NULL,
|
|
`photo` VARCHAR(255) DEFAULT NULL,
|
|
`situation` VARCHAR(255) DEFAULT NULL,
|
|
`etat` ENUM('en attente', 'validé') DEFAULT 'en attente',
|
|
`statut` ENUM('visiteur','simple','complexe','administrateur') DEFAULT 'visiteur',
|
|
PRIMARY KEY (`id`)
|
|
);
|
|
|
|
INSERT INTO `utilisateur` VALUES
|
|
(1, 'Dupont', 'Jean', 'Homme', 30, '1994-05-12', 'jdupont', 'jean.dupont@mail.com', '$2b$10$sOFuc/cZzpK1P8fINfmsAOQ33K0xyCeEXD.OCilFH0SPyuMC.3LNC', './photos/jean.jpg', 'Ingénieur', 'validé', 'complexe'), -- mots de passe dupont
|
|
(2, 'Martin', 'Sophie', 'Femme', 25, '1999-08-21', 'smartin', 'sophie.martin@mail.com', '$2b$10$ydWLQyCvL8PVAN18KCWBWe.oMdtm7Y.R4oCVVJenP9fJqfyBLR26C', './photos/sophie.jpg', 'Étudiante', 'en attente', 'visiteur'), -- mots de passe martin
|
|
(3, 'Durand', 'Paul', 'Homme', 45, '1979-11-30', 'pdurand', 'paul.durand@mail.com', '$2b$10$HnhXjkKOPNLE.2erAwzg.e5zVVRK/wNeegd8GrNxWv2f3U660xQbW', './photos/paul.jpg', 'Directeur', 'validé', 'administrateur'), -- mots de passe durand
|
|
(4, 'Bernard', 'Alice', 'Femme', 28, '1996-02-15', 'aliceb', 'alice.bernard@mail.com', '$2b$10$6BslSk7oJc6fGzQx3YQRHu6Op8xtVQIGFznA0vsmZX40Ix4ywBTfy', './photos/alice.jpg', 'Développeuse', 'validé', 'simple'), -- mots de passe bernard
|
|
(5, 'Lemoine', 'Alex', 'Autre', 32, '1992-07-19', 'alemoine', 'alex.lemoine@mail.com', '$2b$10$lZebS.LIRJi9Z5yDaLSNxujY0piysZAb9BRjGOLVW3Hr2wDPoYTgO', './photos/alex.jpg', 'Freelance', 'en attente', 'simple'), -- mots de passe lemoine
|
|
(6, 'Arricastres', 'Guillaume', 'Homme', 26, '1998-01-15', 'garricastres', 'guillaume.arricastres@mail.com', '$2b$10$StE4wQ2Mox/CUpuR.o/1nObQMT/rAAndmKXOgAJ7r.V/YGvEs7isy', './photos/guillaume.jpg', 'Étudiant', 'validé', 'simple'), -- mots de passe 1234
|
|
(7, 'Chosson', 'Clément', 'Homme', 25, '1999-06-15', 'clement_cx', 'clement.chosson@mail.com', '$2b$10$StE4wQ2Mox/CUpuR.o/1nObQMT/rAAndmKXOgAJ7r.V/YGvEs7isy', NULL, 'Technicien', 'validé', 'complexe'), -- mots de passe 1234
|
|
(8, 'Admin', 'Root', 'Homme', 30, '1993-12-31', 'admin', 'admin@smartbuilding.com', '$2b$10$StE4wQ2Mox/CUpuR.o/1nObQMT/rAAndmKXOgAJ7r.V/YGvEs7isy', NULL, 'Administrateur', 'validé', 'administrateur'); -- mots de passe 1234
|
|
|
|
|
|
-- Table `objet`
|
|
CREATE TABLE IF NOT EXISTS `objet` (
|
|
`adresse_ip` VARCHAR(45) NOT NULL,
|
|
`niveau` ENUM('débutant','intermédiaire','avancé','expert') NOT NULL,
|
|
`denomination` VARCHAR(255) NOT NULL,
|
|
`etat` ENUM('Actif','Inactif') NOT NULL,
|
|
`derniere_interaction` DATETIME DEFAULT NULL,
|
|
`type` ENUM('Climatisation','Lumière','thermostat','securite','Enceinte connectée','Capteur','appareil_menager','Prise') NOT NULL,
|
|
PRIMARY KEY (`adresse_ip`)
|
|
);
|
|
|
|
INSERT INTO `objet` VALUES
|
|
('192.168.1.10', 'débutant', 'Ampoule connectée', 'Inactif', '2025-04-08 10:40:50', 'Lumière'),
|
|
('192.168.1.11', 'débutant', 'Cuisinière', 'Inactif', '2025-04-08 10:40:50', 'appareil_menager'),
|
|
('192.168.1.12', 'débutant', 'Machine à café', 'Inactif', '2025-04-08 10:40:50', 'appareil_menager'),
|
|
('192.168.1.20', 'intermédiaire', 'Thermostat intelligent', 'Actif', '2025-04-08 10:40:50', 'thermostat'),
|
|
('192.168.1.30', 'avancé', 'Caméra de surveillance', 'Actif', '2025-04-08 10:40:50', 'Capteur'),
|
|
('192.168.1.40', 'débutant', 'Machine à laver', 'Inactif', '2025-04-08 10:40:50', 'appareil_menager'),
|
|
('192.168.1.50', 'débutant', 'Enceinte intelligente', 'Inactif', '2025-04-08 10:40:50', 'Enceinte connectée'),
|
|
('192.168.1.60', 'intermédiaire', 'Prise connectée', 'Actif', '2025-04-08 10:40:50', 'Prise'),
|
|
('192.168.1.70', 'avancé', 'Serrure connectée', 'Actif', '2025-04-08 10:40:50', 'securite'),
|
|
('192.168.1.80', 'expert', 'Porte connectée salle de contrôle', 'Actif', '2025-04-08 10:40:50', 'securite'),
|
|
('192.168.1.90', 'avancé', 'Climatisation', 'Actif', '2025-04-08 10:40:50', 'Climatisation');
|
|
|
|
-- Table `thermostat`
|
|
CREATE TABLE `thermostat` (
|
|
`adresse_ip` VARCHAR(45) NOT NULL,
|
|
`temperature_actuelle` FLOAT DEFAULT NULL,
|
|
`temperature_cible` FLOAT DEFAULT NULL,
|
|
`mode` ENUM('Automatique','Manuel') NOT NULL,
|
|
PRIMARY KEY (`adresse_ip`),
|
|
FOREIGN KEY (`adresse_ip`) REFERENCES `objet` (`adresse_ip`)
|
|
);
|
|
|
|
INSERT INTO `thermostat` VALUES
|
|
('192.168.1.20', 17, 20, 'Automatique');
|
|
|
|
-- Table `climatisation_chauffage`
|
|
CREATE TABLE `climatisation_chauffage` (
|
|
`adresse_ip` VARCHAR(45) NOT NULL,
|
|
`thermostat` VARCHAR(45) NOT NULL,
|
|
PRIMARY KEY (`adresse_ip`),
|
|
FOREIGN KEY (`adresse_ip`) REFERENCES `objet` (`adresse_ip`),
|
|
FOREIGN KEY (`thermostat`) REFERENCES `thermostat` (`adresse_ip`)
|
|
);
|
|
|
|
INSERT INTO `climatisation_chauffage` VALUES
|
|
('192.168.1.90', '192.168.1.20');
|
|
|
|
-- Table `appareil_menager`
|
|
CREATE TABLE `appareil_menager` (
|
|
`adresse_ip` VARCHAR(45) NOT NULL,
|
|
`depart_differe` TIME DEFAULT NULL,
|
|
`etat_de_la_tache` ENUM('Complété','En cours','En attente','Aucune') NOT NULL,
|
|
PRIMARY KEY (`adresse_ip`),
|
|
FOREIGN KEY (`adresse_ip`) REFERENCES `objet` (`adresse_ip`) ON DELETE RESTRICT ON UPDATE CASCADE
|
|
);
|
|
|
|
INSERT INTO `appareil_menager` VALUES
|
|
('192.168.1.11', NULL, 'Aucune'),
|
|
('192.168.1.12', NULL, 'Aucune'),
|
|
('192.168.1.40', NULL, 'Aucune');
|
|
|
|
-- Table `securite`
|
|
CREATE TABLE `securite` (
|
|
`adresse_ip` VARCHAR(45) NOT NULL,
|
|
`situation` ENUM('Verouillé','Ouvert') NOT NULL,
|
|
PRIMARY KEY (`adresse_ip`),
|
|
FOREIGN KEY (`adresse_ip`) REFERENCES `objet` (`adresse_ip`) ON DELETE RESTRICT ON UPDATE CASCADE
|
|
);
|
|
|
|
INSERT INTO `securite` VALUES
|
|
('192.168.1.70', 'Ouvert'),
|
|
('192.168.1.80', 'Verouillé');
|
|
|
|
-- Table `gestion`
|
|
CREATE TABLE `gestion` (
|
|
`id` INT NOT NULL AUTO_INCREMENT,
|
|
`id_utilisateur` INT NOT NULL,
|
|
`competence` VARCHAR(255) NOT NULL,
|
|
`niveau` ENUM('débutant','intermédiaire','avancé','expert') NOT NULL,
|
|
`categorie_experience` FLOAT DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
FOREIGN KEY (`id_utilisateur`) REFERENCES `utilisateur` (`id`) ON DELETE CASCADE
|
|
);
|
|
|
|
INSERT INTO `gestion` (`id`, `id_utilisateur`, `competence`, `niveau`, `categorie_experience`) VALUES
|
|
(1, 1, 'Informatique', 'expert', 5),
|
|
(2, 1, 'Electronique', 'avancé', 3.5),
|
|
(3, 2, 'Internet', 'intermédiaire', 2),
|
|
(4, 2, 'Assistance numerique', 'débutant', 1),
|
|
(5, 3, 'Cuisine', 'expert', 10),
|
|
(6, 3, 'Aménagement', 'avancé', 7),
|
|
(7, 4, 'Securite', 'avancé', 4),
|
|
(8, 4, 'Acceuil', 'intermédiaire', 2.5),
|
|
(9, 5, 'Entretien', 'intermédiaire', 3),
|
|
(10, 5, 'Securite', 'débutant', 1.5);
|
|
|
|
|
|
CREATE TABLE `ressources` (
|
|
`id` int NOT NULL,
|
|
`nom` varchar(50) NOT NULL,
|
|
`consommation` varchar(50) NOT NULL,
|
|
`consommation_max` varchar(50) NOT NULL,
|
|
`fournisseur` varchar(100) NOT NULL,
|
|
`abonnement` varchar(100) NOT NULL,
|
|
`echeance` varchar(50) NOT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
INSERT INTO `ressources` (`id`, `nom`, `consommation`, `consommation_max`, `fournisseur`, `abonnement`, `echeance`) VALUES
|
|
(0, 'Électricité', '250 kWh', '500 kWh', 'EDF', '50 € / mois', '2025-12-30'),
|
|
(1, 'Gaz', '90 m³', '200 m³', 'Engie', '40 € / mois', '2025-06-30'),
|
|
(2, 'Eau', '1200 L', '3000 L', 'Veolia', '20 € / mois', '2025-08-15');
|
|
|
|
CREATE TABLE IF NOT EXISTS contact (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
nom VARCHAR(100) NOT NULL,
|
|
email VARCHAR(255) NOT NULL,
|
|
message TEXT NOT NULL,
|
|
date_envoi TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|