-- Script d'initialisation de la base batiments -- À exécuter avant le premier import -- Création de la base de données CREATE DATABASE IF NOT EXISTS batiments DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE batiments; -- Table d'historique des imports CREATE TABLE IF NOT EXISTS _histo ( id INT AUTO_INCREMENT PRIMARY KEY, date_import DATETIME NOT NULL, dept VARCHAR(5) NOT NULL, nb_batiments INT DEFAULT 0, INDEX idx_date_import (date_import), INDEX idx_dept (dept) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- Vue consolidée de tous les départements (à créer après les imports) -- Cette vue sera créée dynamiquement après l'import de tous les départements -- Exemple de requête pour créer la vue après imports : /* CREATE OR REPLACE VIEW v_batiments_france AS SELECT * FROM bat01 UNION ALL SELECT * FROM bat02 UNION ALL SELECT * FROM bat03 -- ... etc pour tous les départements ; */ -- Index supplémentaires recommandés après import complet -- À exécuter sur chaque table batXX après import : /* ALTER TABLE bat01 ADD INDEX idx_nb_log (nb_log); ALTER TABLE bat01 ADD INDEX idx_nb_niv (nb_niv_max); ALTER TABLE bat01 ADD INDEX idx_coords (latitude, longitude); */ -- Permissions pour l'utilisateur osm_maj_user GRANT ALL PRIVILEGES ON batiments.* TO 'osm_maj_user'@'localhost'; GRANT ALL PRIVILEGES ON batiments.* TO 'osm_maj_user'@'%'; FLUSH PRIVILEGES; -- Statistiques globales CREATE OR REPLACE VIEW v_stats_imports AS SELECT dept, MAX(date_import) as derniere_import, SUM(nb_batiments) as total_batiments FROM _histo GROUP BY dept ORDER BY dept; -- Exemple de jointure avec la base adresses /* -- Depuis la base batiments, joindre avec la base adresses : SELECT b.batiment_groupe_id, b.nb_log, b.nb_niv_max, b.nb_pdl_res_princ as nb_compteurs, a.numero, a.rue, a.cp, a.ville FROM bat01 b JOIN adresses.cp01 a ON b.cle_interop_adr = a.id WHERE b.nb_log > 0 AND b.nb_pdl_res_princ > 0; */