Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 2069 → Rev 2070

/branches/v1.9-neon/doc/bdd/sql/del.sql
New file
0,0 → 1,319
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
 
 
-- -----------------------------------------------------
-- Table `del_utilisateur_infos`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `del_utilisateur_infos` ;
 
CREATE TABLE IF NOT EXISTS `del_utilisateur_infos` (
`id_utilisateur` INT(11) NOT NULL,
`admin` TINYINT(1) NULL,
`preferences` LONGTEXT NULL,
`date_premiere_utilisation` DATETIME NULL,
`date_derniere_consultation_evenements` DATETIME NOT NULL,
PRIMARY KEY (`id_utilisateur`))
ENGINE = MyISAM;
 
 
-- -----------------------------------------------------
-- Table `del_utilisateur`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `del_utilisateur` ;
 
CREATE TABLE IF NOT EXISTS `del_utilisateur` (
`id_utilisateur` INT NOT NULL AUTO_INCREMENT COMMENT 'Type varchar pour éviter problème de jointure.',
`prenom` VARCHAR(255) NOT NULL,
`nom` VARCHAR(255) NOT NULL,
`courriel` VARCHAR(255) NOT NULL,
`mot_de_passe` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`id_utilisateur`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
 
 
-- -----------------------------------------------------
-- Table `del_observation`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `del_observation` ;
 
CREATE TABLE IF NOT EXISTS `del_observation` (
`id_observation` BIGINT NOT NULL AUTO_INCREMENT,
`ce_utilisateur` INT NOT NULL,
`nom_sel` VARCHAR(255) NULL DEFAULT NULL COMMENT 'Nom scientifique sélectionné par l\'utilisateur.',
`nom_sel_nn` DECIMAL(9,0) NULL DEFAULT NULL COMMENT 'Identifiant du nom sélectionné.',
`nom_ret` VARCHAR(255) NULL DEFAULT NULL COMMENT 'Nom scientifique retenu correspondant au nom sélectionné.',
`nom_ret_nn` DECIMAL(9,0) NULL DEFAULT NULL COMMENT 'Identifiant du nom retenu.',
`nt` DECIMAL(9,0) NULL DEFAULT NULL COMMENT 'Numéro taxonomique du taxon correspondant au nom sélectionné.',
`famille` VARCHAR(255) NULL DEFAULT NULL COMMENT 'Nom de la famille du nom sélectionné.',
`nom_referentiel` VARCHAR(255) NULL DEFAULT NULL,
`ce_zone_geo` VARCHAR(50) NULL DEFAULT NULL,
`zone_geo` VARCHAR(255) NULL DEFAULT NULL,
`lieudit` VARCHAR(255) NULL DEFAULT NULL,
`station` VARCHAR(255) NULL DEFAULT NULL,
`milieu` VARCHAR(255) NULL DEFAULT NULL,
`date_observation` DATETIME NULL,
`mots_cles_texte` LONGTEXT NULL DEFAULT NULL,
`commentaire` TEXT NULL DEFAULT NULL,
`date_creation` DATETIME NOT NULL,
`date_modification` DATETIME NOT NULL,
`date_transmission` DATETIME NOT NULL COMMENT 'Date à laquelle l\'observation a été rendu publique.',
`certitude` VARCHAR(255) NOT NULL,
`pays` VARCHAR(2) NOT NULL,
PRIMARY KEY (`id_observation`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
COMMENT = 'Observations publiques.';
 
 
-- -----------------------------------------------------
-- Table `del_image`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `del_image` ;
 
CREATE TABLE IF NOT EXISTS `del_image` (
`id_image` BIGINT NOT NULL AUTO_INCREMENT,
`ce_observation` BIGINT NOT NULL,
`ce_utilisateur` INT NOT NULL,
`hauteur` INT NULL,
`largeur` INT NULL,
`date_prise_de_vue` DATETIME NULL,
`mots_cles_texte` LONGTEXT NULL DEFAULT NULL,
`commentaire` LONGTEXT NULL DEFAULT NULL,
`nom_original` VARCHAR(255) NOT NULL,
`date_creation` DATETIME NOT NULL,
`date_modification` DATETIME NOT NULL,
`date_liaison` DATETIME NOT NULL,
`date_transmission` DATETIME NOT NULL,
PRIMARY KEY (`id_image`))
ENGINE = MEMORY
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
 
 
-- -----------------------------------------------------
-- Table `del_image_protocole`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `del_image_protocole` ;
 
CREATE TABLE IF NOT EXISTS `del_image_protocole` (
`id_protocole` INT NOT NULL AUTO_INCREMENT,
`intitule` VARCHAR(255) NOT NULL,
`descriptif` TEXT NULL,
`tag` VARCHAR(255) NULL,
`mots_cles` VARCHAR(600) NOT NULL COMMENT 'Mots clés associés au protocole, ceux ci déterminent les mots clés présentés \"à cocher\" dans l\'interface, lorsque le protocole est selectionné',
PRIMARY KEY (`id_protocole`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
 
 
-- -----------------------------------------------------
-- Table `del_image_vote`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `del_image_vote` ;
 
CREATE TABLE IF NOT EXISTS `del_image_vote` (
`id_vote` BIGINT NOT NULL AUTO_INCREMENT,
`ce_image` BIGINT NOT NULL,
`ce_protocole` INT NOT NULL,
`ce_utilisateur` VARCHAR(32) NOT NULL COMMENT 'Identifiant de session ou id utilisateur.',
`valeur` TINYINT(1) NOT NULL,
`date` DATETIME NOT NULL,
PRIMARY KEY (`id_vote`),
UNIQUE INDEX `protocole_image_utilisateur` (`ce_image` ASC, `ce_protocole` ASC, `ce_utilisateur` ASC))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
 
 
-- -----------------------------------------------------
-- Table `del_image_tag`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `del_image_tag` ;
 
CREATE TABLE IF NOT EXISTS `del_image_tag` (
`id_tag` BIGINT NOT NULL AUTO_INCREMENT,
`ce_image` BIGINT NOT NULL,
`ce_utilisateur` VARCHAR(64) NOT NULL,
`tag` VARCHAR(255) NOT NULL DEFAULT 'Mot clé saisi par l\'utilisateur.',
`tag_normalise` VARCHAR(255) NOT NULL DEFAULT 'Mot clé normalisé (sans espace ni accent).',
`date` DATETIME NOT NULL COMMENT 'Date de création du tag.',
`actif` INT(1) NULL,
`date_modification` DATETIME NULL,
PRIMARY KEY (`id_tag`),
INDEX `tag` (`tag` ASC),
INDEX `tag_normalise` (`tag_normalise` ASC))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
 
 
-- -----------------------------------------------------
-- Table `del_commentaire`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `del_commentaire` ;
 
CREATE TABLE IF NOT EXISTS `del_commentaire` (
`id_commentaire` BIGINT NOT NULL AUTO_INCREMENT,
`ce_observation` BIGINT NOT NULL,
`ce_proposition` INT NULL DEFAULT 0,
`ce_commentaire_parent` BIGINT NULL DEFAULT 0,
`texte` TEXT NULL DEFAULT NULL,
`ce_utilisateur` INT NULL DEFAULT '0',
`utilisateur_prenom` VARCHAR(255) NOT NULL,
`utilisateur_nom` VARCHAR(255) NOT NULL,
`utilisateur_courriel` VARCHAR(255) NOT NULL,
`nom_sel` VARCHAR(255) NULL DEFAULT NULL,
`nom_sel_nn` DECIMAL(9,0) NULL DEFAULT NULL,
`nom_ret` VARCHAR(255) NULL DEFAULT NULL,
`nom_ret_nn` DECIMAL(9,0) NULL DEFAULT NULL,
`nt` DECIMAL(9,0) NULL DEFAULT NULL,
`famille` VARCHAR(255) NULL DEFAULT NULL,
`nom_referentiel` VARCHAR(255) NULL DEFAULT NULL,
`date` DATETIME NOT NULL COMMENT 'Date de création du commentaire.',
`proposition_initiale` INT(1) NOT NULL DEFAULT 0 COMMENT 'La proposition initiale est le nom_sel d\'origine copié ici dès lors que des commentaires adviennent.',
`proposition_retenue` INT(1) NOT NULL DEFAULT 0 COMMENT 'La proposition \"validée\" une fois que l\'auteur à validé et que le nom_sel de cel_obs a été modifié à partir du nom_sel de del_commentaire.',
`ce_validateur` INT(11) NULL,
`date_validation` DATETIME NULL,
PRIMARY KEY (`id_commentaire`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
 
 
-- -----------------------------------------------------
-- Table `del_commentaire_vote`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `del_commentaire_vote` ;
 
CREATE TABLE IF NOT EXISTS `del_commentaire_vote` (
`id_vote` BIGINT NOT NULL AUTO_INCREMENT,
`ce_proposition` BIGINT NOT NULL,
`ce_utilisateur` VARCHAR(32) NOT NULL DEFAULT '0' COMMENT 'Identifiant de session ou id de l\'utilisateur.',
`valeur` TINYINT(1) NOT NULL,
`date` DATETIME NOT NULL,
PRIMARY KEY (`id_vote`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
COMMENT = 'Vote uniquement sur le commentaire de type \'proposition\'.';
 
 
-- -----------------------------------------------------
-- Table `del_image_stats`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `del_image_stats` ;
 
CREATE TABLE IF NOT EXISTS `del_image_stats` (
`ce_image` BIGINT(20) NOT NULL COMMENT 'id_image (tb_cel.cel_images)',
`ce_protocole` TINYINT NOT NULL DEFAULT 0 COMMENT 'un id de protocole',
`moyenne` FLOAT NOT NULL DEFAULT 0 COMMENT 'moyenne des votes pour une image et un protocole donné',
`nb_votes` SMALLINT NOT NULL DEFAULT 0 COMMENT 'nombre de votes pour une image et un protocole donné',
`nb_tags` TINYINT NOT NULL DEFAULT 0 COMMENT 'nombre de tags pictoflora associés à une image',
PRIMARY KEY (`ce_image`, `ce_protocole`),
INDEX `ce_image` (`ce_image` ASC),
INDEX `ce_protocole` (`ce_protocole` ASC, `moyenne` DESC),
INDEX `nb_tags` (`nb_tags` DESC),
INDEX `nb_votes` (`nb_votes` DESC))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COMMENT = 'table de stockage des statistiques utilisées pour les tri de /* comment truncated */ /* PictoFlora*/';
 
 
-- -----------------------------------------------------
-- Placeholder table for view `del_utilisateurs`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `del_utilisateurs` (`id_utilisateur` INT, `prenom` INT, `nom` INT, `courriel` INT, `mot_de_passe` INT);
 
-- -----------------------------------------------------
-- Placeholder table for view `del_observations`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `del_observations` (`id_observation` INT, `ce_utilisateur` INT, `prenom_utilisateur` INT, `nom_utilisateur` INT, `courriel_utilisateur` INT, `nom_sel` INT, `nom_sel_nn` INT, `nom_ret` INT, `nom_ret_nn` INT, `nt` INT, `famille` INT, `ce_zone_geo` INT, `zone_geo` INT, `lieudit` INT, `station` INT, `milieu` INT, `nom_referentiel` INT, `date_observation` INT, `mots_cles_texte` INT, `commentaire` INT, `date_creation` INT, `date_modification` INT, `date_transmission` INT, `certitude` INT);
 
-- -----------------------------------------------------
-- Placeholder table for view `del_images`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `del_images` (`id_image` INT, `ce_observation` INT, `ce_utilisateur` INT, `prenom_utilisateur` INT, `nom_utilisateur` INT, `courriel_utilisateur` INT, `hauteur` INT, `largeur` INT, `date_prise_de_vue` INT, `mots_cles_texte` INT, `commentaire` INT, `nom_original` INT, `date_creation` INT, `date_modification` INT, `date_liaison` INT, `date_transmission` INT);
 
-- -----------------------------------------------------
-- Placeholder table for view `v_del_image`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `v_del_image` (`id_image` INT, `i_ce_utilisateur` INT, `i_prenom_utilisateur` INT, `i_nom_utilisateur` INT, `i_courriel_utilisateur` INT, `hauteur` INT, `largeur` INT, `date_prise_de_vue` INT, `i_mots_cles_texte` INT, `i_commentaire` INT, `nom_original` INT, `date_creation` INT, `date_modification` INT, `date_liaison` INT, `date_transmission` INT);
 
-- -----------------------------------------------------
-- View `del_utilisateurs`
-- -----------------------------------------------------
DROP VIEW IF EXISTS `del_utilisateurs` ;
DROP TABLE IF EXISTS `del_utilisateurs`;
CREATE OR REPLACE VIEW del_utilisateur AS
SELECT
U_ID AS id_utilisateur,
CONVERT(U_SURNAME USING UTF8) AS prenom,
CONVERT(U_NAME USING UTF8) AS nom,
CONVERT(U_MAIL USING UTF8) AS courriel,
CONVERT(U_PASSWD USING UTF8) AS mot_de_passe
FROM tela_prod_v4.annuaire_tela;
 
-- -----------------------------------------------------
-- View `del_observations`
-- -----------------------------------------------------
DROP VIEW IF EXISTS `del_observations` ;
DROP TABLE IF EXISTS `del_observations`;
CREATE OR REPLACE VIEW del_observation AS
SELECT id_observation,
if((char_length(o.ce_utilisateur) <> 32),cast(o.ce_utilisateur as unsigned),0) AS ce_utilisateur,
o.prenom_utilisateur, o.nom_utilisateur, o.courriel_utilisateur,
nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille,
ce_zone_geo, zone_geo, lieudit, station, milieu, nom_referentiel,
date_observation, o.mots_cles_texte, o.commentaire,
o.date_creation, o.date_modification, o.date_transmission, certitude, pays
FROM tb_cel.cel_obs AS o WHERE o.id_observation IN (SELECT i.ce_observation FROM tb_cel.cel_images i)
AND o.transmission = '1';
 
-- -----------------------------------------------------
-- View `del_images`
-- -----------------------------------------------------
DROP VIEW IF EXISTS `del_images` ;
DROP TABLE IF EXISTS `del_images`;
CREATE OR REPLACE VIEW del_image AS
SELECT i.id_image, i.ce_observation,
if((char_length(i.ce_utilisateur) <> 32),cast(i.ce_utilisateur as unsigned),0) AS ce_utilisateur, i.prenom_utilisateur, i.nom_utilisateur, i.courriel_utilisateur,
i.hauteur, i.largeur, i.date_prise_de_vue, i.mots_cles_texte, i.commentaire, i.nom_original,
i.date_creation, i.date_modification, i.date_liaison, i.date_transmission
FROM tb_cel.cel_images AS i
WHERE i.transmission = '1';
 
-- -----------------------------------------------------
-- View `del_plantnet`
-- -----------------------------------------------------
DROP VIEW IF EXISTS `del_plantnet` ;
DROP TABLE IF EXISTS `del_plantnet`;
CREATE OR REPLACE VIEW del_plantnet AS
SELECT o.*,
i.id_image,
i.ce_utilisateur AS i_ce_utilisateur, i.prenom_utilisateur AS i_prenom_utilisateur, i.nom_utilisateur AS i_nom_utilisateur, i.courriel_utilisateur AS i_courriel_utilisateur,
hauteur, largeur, i.date_prise_de_vue, i.mots_cles_texte AS i_mots_cles_texte, i.commentaire AS i_commentaire, i.nom_original,
i.date_creation AS i_date_creation, i.date_modification AS i_date_modification, i.date_liaison AS i_date_liaison, i.date_transmission AS i_date_transmission
FROM tb_cel.cel_obs AS o
INNER JOIN tb_cel.cel_images AS i ON (o.id_observation = i.ce_observation )
WHERE o.transmission = '1';
 
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
 
-- -----------------------------------------------------
-- Data for table `del_image_protocole`
-- -----------------------------------------------------
START TRANSACTION;
INSERT INTO `del_image_protocole` (`id_protocole`, `intitule`, `descriptif`, `tag`, `mots_cles`) VALUES (3, 'Capitalisation d\'images', 'photographier en extérieur les organes (feuille, fruit, tronc, etc.) de plantes et transmettre les photos via le Carnet en ligne.', 'Plantnet', 'port,fleur,fruit,feuille,plantscan_new,ecorce,rameau,planche');
INSERT INTO `del_image_protocole` (`id_protocole`, `intitule`, `descriptif`, `tag`, `mots_cles`) VALUES (1, 'Aide à l\'identification', 'Choisissez les photos les plus utiles pour vérifier la détermination d\'une espèce', 'caractere', '');
INSERT INTO `del_image_protocole` (`id_protocole`, `intitule`, `descriptif`, `tag`, `mots_cles`) VALUES (4, 'Défi Photo', 'Choisissez les lauréats du défi photo', '', '');
INSERT INTO `del_image_protocole` (`id_protocole`, `intitule`, `descriptif`, `tag`, `mots_cles`) VALUES (5, 'Enquête Gentiane-Azuré', 'Participez à la localisation des Gentianes Croisette, témoins et actrices du cycle de vie du papillon Azuré de la Croisette\r\n', 'GentianeAzure', '');
 
COMMIT;