diff --git a/code/server/borne/handler.js b/code/server/borne/handler.js index 1834b09..60a02f5 100644 --- a/code/server/borne/handler.js +++ b/code/server/borne/handler.js @@ -25,7 +25,7 @@ const addAuteur = (author) => { //Ajoute une note sur un critère spécifique const addSpecificRating = (reviewId, label, value) => { return new Promise((resolve, reject) => { - const sql = "INSERT INTO borne_notes_autre(critere_id, avis_id, valeur) VALUES ((SELECT id FROM borne_criteres WHERE borne_criteres.nom = ?), ?, ?)" + const sql = "INSERT INTO borne_notes_autre(critere_id, avis_id, note) VALUES ((SELECT id FROM borne_criteres WHERE borne_criteres.nom = ?), ?, ?)" console.log(sql); conn.query(sql, [label,reviewId, value], (err, res) => { if(err) { diff --git a/code/server/stats/update_stats.sql b/code/server/stats/update_stats.sql index 0b54c25..1171eeb 100644 --- a/code/server/stats/update_stats.sql +++ b/code/server/stats/update_stats.sql @@ -1,5 +1,6 @@ SET @date_limite = DATE_ADD(NOW(), INTERVAL -1 DAY); +-- On récupère les notes notes moyennes sur la periode, en séparant global, borne et site SELECT @moyenne_globale:=AVG(note_principale) FROM borne_avis WHERE date > @date_limite; @@ -14,4 +15,23 @@ SELECT @moyenne_site:=AVG(note_principale) JOIN sources ON sources.id = borne_avis.source_id WHERE date > @date_limite AND sources.nom = "website"; -INSERT INTO stats_jour (moyenne_globale, moyenne_borne, moyenne_site) VALUES (@moyenne_globale, @moyenne_borne, @moyenne_site); \ No newline at end of file +-- On récupère la distribution de sexes +SELECT @stats_f:=COUNT(*) FROM borne_avis + JOIN borne_auteurs ON borne_avis.id_auteur = borne_auteurs.id + WHERE sexe='f' WHERE date > @date_limite; +SELECT @stats_h:=COUNT(*) FROM borne_avis + JOIN borne_auteurs ON borne_avis.id_auteur = borne_auteurs.id + WHERE sexe='h' WHERE date > @date_limite; +SELECT @stats_a:=COUNT(*) FROM borne_avis + JOIN borne_auteurs ON borne_avis.id_auteur = borne_auteurs.id + WHERE sexe='a' WHERE date > @date_limite; + +SET @dist_sexe = CONCAT(@stats_f,",",@stats_h,",",@stats_a); + +INSERT INTO stats_general_jour (moyenne_globale, moyenne_borne, moyenne_site) VALUES (@moyenne_globale, @moyenne_borne, @moyenne_site); + + +INSERT INTO stats_autres_jour (critere_id, note) + SELECT critere_id, AVG(note) as moyenne FROM `borne_notes_autre` + GROUP BY critere_id + WHERE date > @date_limite \ No newline at end of file diff --git a/code/sql/telereview.sql b/code/sql/telereview.sql index 9571ddc..5524e98 100644 --- a/code/sql/telereview.sql +++ b/code/sql/telereview.sql @@ -3,7 +3,7 @@ -- https://www.phpmyadmin.net/ -- -- Host: localhost:3306 --- Generation Time: Dec 25, 2022 at 09:49 PM +-- Generation Time: Dec 26, 2022 at 10:31 AM -- Server version: 8.0.31-0ubuntu0.20.04.1 -- PHP Version: 7.4.3 @@ -21,6 +21,8 @@ SET time_zone = "+00:00"; -- -- Database: `telereview` -- +CREATE DATABASE IF NOT EXISTS `telereview` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; +USE `telereview`; -- -------------------------------------------------------- @@ -77,9 +79,10 @@ INSERT INTO `borne_criteres` (`id`, `nom`) VALUES CREATE TABLE `borne_notes_autre` ( `id` int NOT NULL, + `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `critere_id` int NOT NULL, `avis_id` int NOT NULL, - `valeur` int NOT NULL COMMENT 'Note sur 10' + `note` int NOT NULL COMMENT 'Note sur 10' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -- -------------------------------------------------------- @@ -134,16 +137,67 @@ INSERT INTO `sources` (`id`, `nom`) VALUES -- -------------------------------------------------------- -- --- Table structure for table `stats_annee` +-- Table structure for table `stats_autres_annee` -- -CREATE TABLE `stats_annee` ( +CREATE TABLE `stats_autres_annee` ( + `id` int NOT NULL, + `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `critere_id` int NOT NULL, + `note` float NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `stats_autres_jour` +-- + +CREATE TABLE `stats_autres_jour` ( + `id` int NOT NULL, + `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `critere_id` int NOT NULL, + `note` float NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `stats_autres_mois` +-- + +CREATE TABLE `stats_autres_mois` ( + `id` int NOT NULL, + `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `critere_id` int NOT NULL, + `note` float NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `stats_autres_semaine` +-- + +CREATE TABLE `stats_autres_semaine` ( + `id` int NOT NULL, + `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `critere_id` int NOT NULL, + `note` float NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `stats_general_annee` +-- + +CREATE TABLE `stats_general_annee` ( `id` int NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `moyenne_globale` float NOT NULL, `moyenne_site` float NOT NULL, `moyenne_borne` float NOT NULL, - `moyenne_autres` text NOT NULL COMMENT 'Nombres séparés par des ; => moyennes spécifiques', `dist_age` text NOT NULL COMMENT 'Distribution de l''age des auteurs', `dist_sexe` text NOT NULL COMMENT 'Distribution du sexe des auteurs' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; @@ -151,16 +205,15 @@ CREATE TABLE `stats_annee` ( -- -------------------------------------------------------- -- --- Table structure for table `stats_jour` +-- Table structure for table `stats_general_jour` -- -CREATE TABLE `stats_jour` ( +CREATE TABLE `stats_general_jour` ( `id` int NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `moyenne_globale` float DEFAULT NULL, `moyenne_site` float DEFAULT NULL, `moyenne_borne` float DEFAULT NULL, - `moyenne_autres` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT 'Nombres séparés par des ; => moyennes spécifiques', `dist_age` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT 'Distribution de l''age des auteurs', `dist_sexe` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT 'Distribution du sexe des auteurs' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; @@ -168,16 +221,15 @@ CREATE TABLE `stats_jour` ( -- -------------------------------------------------------- -- --- Table structure for table `stats_mois` +-- Table structure for table `stats_general_mois` -- -CREATE TABLE `stats_mois` ( +CREATE TABLE `stats_general_mois` ( `id` int NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `moyenne_globale` float NOT NULL, `moyenne_site` float NOT NULL, `moyenne_borne` float NOT NULL, - `moyenne_autres` text NOT NULL COMMENT 'Nombres séparés par des ; => moyennes spécifiques', `dist_age` text NOT NULL COMMENT 'Distribution de l''age des auteurs', `dist_sexe` text NOT NULL COMMENT 'Distribution du sexe des auteurs' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; @@ -185,16 +237,15 @@ CREATE TABLE `stats_mois` ( -- -------------------------------------------------------- -- --- Table structure for table `stats_semaine` +-- Table structure for table `stats_general_semaine` -- -CREATE TABLE `stats_semaine` ( +CREATE TABLE `stats_general_semaine` ( `id` int NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `moyenne_globale` float NOT NULL, `moyenne_site` float NOT NULL, `moyenne_borne` float NOT NULL, - `moyenne_autres` text NOT NULL COMMENT 'Nombres séparés par des ; => moyennes spécifiques', `dist_age` text NOT NULL COMMENT 'Distribution de l''age des auteurs', `dist_sexe` text NOT NULL COMMENT 'Distribution du sexe des auteurs' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; @@ -246,27 +297,51 @@ ALTER TABLE `sources` ADD PRIMARY KEY (`id`); -- --- Indexes for table `stats_annee` +-- Indexes for table `stats_autres_annee` -- -ALTER TABLE `stats_annee` +ALTER TABLE `stats_autres_annee` ADD PRIMARY KEY (`id`); -- --- Indexes for table `stats_jour` +-- Indexes for table `stats_autres_jour` -- -ALTER TABLE `stats_jour` +ALTER TABLE `stats_autres_jour` ADD PRIMARY KEY (`id`); -- --- Indexes for table `stats_mois` +-- Indexes for table `stats_autres_mois` -- -ALTER TABLE `stats_mois` +ALTER TABLE `stats_autres_mois` ADD PRIMARY KEY (`id`); -- --- Indexes for table `stats_semaine` +-- Indexes for table `stats_autres_semaine` -- -ALTER TABLE `stats_semaine` +ALTER TABLE `stats_autres_semaine` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `stats_general_annee` +-- +ALTER TABLE `stats_general_annee` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `stats_general_jour` +-- +ALTER TABLE `stats_general_jour` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `stats_general_mois` +-- +ALTER TABLE `stats_general_mois` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `stats_general_semaine` +-- +ALTER TABLE `stats_general_semaine` ADD PRIMARY KEY (`id`); -- @@ -316,27 +391,51 @@ ALTER TABLE `sources` MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- --- AUTO_INCREMENT for table `stats_annee` +-- AUTO_INCREMENT for table `stats_autres_annee` -- -ALTER TABLE `stats_annee` +ALTER TABLE `stats_autres_annee` MODIFY `id` int NOT NULL AUTO_INCREMENT; -- --- AUTO_INCREMENT for table `stats_jour` +-- AUTO_INCREMENT for table `stats_autres_jour` -- -ALTER TABLE `stats_jour` +ALTER TABLE `stats_autres_jour` MODIFY `id` int NOT NULL AUTO_INCREMENT; -- --- AUTO_INCREMENT for table `stats_mois` +-- AUTO_INCREMENT for table `stats_autres_mois` -- -ALTER TABLE `stats_mois` +ALTER TABLE `stats_autres_mois` MODIFY `id` int NOT NULL AUTO_INCREMENT; -- --- AUTO_INCREMENT for table `stats_semaine` +-- AUTO_INCREMENT for table `stats_autres_semaine` -- -ALTER TABLE `stats_semaine` +ALTER TABLE `stats_autres_semaine` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `stats_general_annee` +-- +ALTER TABLE `stats_general_annee` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `stats_general_jour` +-- +ALTER TABLE `stats_general_jour` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `stats_general_mois` +-- +ALTER TABLE `stats_general_mois` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `stats_general_semaine` +-- +ALTER TABLE `stats_general_semaine` MODIFY `id` int NOT NULL AUTO_INCREMENT; COMMIT;