Subversion Repositories eFlore/Applications.cel

Rev

Rev 1202 | Rev 1521 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1202 Rev 1505
Line 53... Line 53...
53
  `md5` VARCHAR(32) NOT NULL COMMENT 'MD5 du mot clé en minuscule.' ,
53
  `md5` VARCHAR(32) NOT NULL COMMENT 'MD5 du mot clé en minuscule.' ,
54
  `bg` BIGINT NOT NULL COMMENT 'Bordure gauche.' ,
54
  `bg` BIGINT NOT NULL COMMENT 'Bordure gauche.' ,
55
  `bd` BIGINT NOT NULL COMMENT 'bordure droite.' ,
55
  `bd` BIGINT NOT NULL COMMENT 'bordure droite.' ,
56
  `niveau` INT NOT NULL COMMENT 'Niveau du mot clé dans l\'arbre.' ,
56
  `niveau` INT NOT NULL COMMENT 'Niveau du mot clé dans l\'arbre.' ,
57
  `ce_mot_cle_image_parent` VARCHAR(128) NOT NULL ,
57
  `ce_mot_cle_image_parent` VARCHAR(128) NOT NULL ,
58
  PRIMARY KEY (`id_mot_cle_image`, `id_utilisateur`) )
58
  PRIMARY KEY (`id_mot_cle_image`, `id_utilisateur`) ,
-
 
59
  CONSTRAINT `fk_cel_mots_cles_images_cel_utilisateur1`
-
 
60
    FOREIGN KEY (`id_utilisateur` )
-
 
61
    REFERENCES `cel_utilisateurs` (`id_utilisateur` )
-
 
62
    ON DELETE NO ACTION
-
 
63
    ON UPDATE NO ACTION,
-
 
64
  CONSTRAINT `fk_cel_mots_cles_images_cel_mots_cles_images1`
-
 
65
    FOREIGN KEY (`ce_mot_cle_image_parent` )
-
 
66
    REFERENCES `cel_mots_cles_images` (`id_mot_cle_image` )
-
 
67
    ON DELETE NO ACTION
-
 
68
    ON UPDATE NO ACTION)
59
ENGINE = InnoDB
69
ENGINE = InnoDB
60
DEFAULT CHARACTER SET = utf8
70
DEFAULT CHARACTER SET = utf8
61
COLLATE = utf8_general_ci
71
COLLATE = utf8_general_ci
62
COMMENT = 'Table des mots clés, à utiliser avec des transactions !\n'
72
COMMENT = 'Table des mots clés, à utiliser avec des transactions !\n'
63
ROW_FORMAT = COMPACT;
73
ROW_FORMAT = COMPACT;
Line 129... Line 139...
129
  `md5` VARCHAR(32) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
139
  `md5` VARCHAR(32) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
130
  `bg` BIGINT NOT NULL ,
140
  `bg` BIGINT NOT NULL ,
131
  `bd` BIGINT NOT NULL ,
141
  `bd` BIGINT NOT NULL ,
132
  `niveau` INT NOT NULL ,
142
  `niveau` INT NOT NULL ,
133
  `ce_mot_cle_obs_parent` VARCHAR(128) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
143
  `ce_mot_cle_obs_parent` VARCHAR(128) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
134
  PRIMARY KEY (`id_mot_cle_obs`, `id_utilisateur`) )
144
  PRIMARY KEY (`id_mot_cle_obs`, `id_utilisateur`) ,
-
 
145
  CONSTRAINT `fk_cel_mots_cles_obs_cel_utilisateur1`
-
 
146
    FOREIGN KEY (`id_utilisateur` )
-
 
147
    REFERENCES `cel_utilisateurs` (`id_utilisateur` )
-
 
148
    ON DELETE NO ACTION
-
 
149
    ON UPDATE NO ACTION,
-
 
150
  CONSTRAINT `fk_cel_mots_cles_obs_cel_mots_cles_obs1`
-
 
151
    FOREIGN KEY (`ce_mot_cle_obs_parent` )
-
 
152
    REFERENCES `cel_mots_cles_obs` (`id_mot_cle_obs` )
-
 
153
    ON DELETE NO ACTION
-
 
154
    ON UPDATE NO ACTION)
135
ENGINE = InnoDB
155
ENGINE = InnoDB
136
DEFAULT CHARACTER SET = utf8
156
DEFAULT CHARACTER SET = utf8
137
COLLATE = utf8_general_ci
157
COLLATE = utf8_general_ci
138
COMMENT = 'Table des mots clés, à utiliser avec des transactions !'
158
COMMENT = 'Table des mots clés, à utiliser avec des transactions !'
139
ROW_FORMAT = COMPACT;
159
ROW_FORMAT = COMPACT;
Line 180... Line 200...
180
DEFAULT CHARACTER SET = utf8
200
DEFAULT CHARACTER SET = utf8
181
COLLATE = utf8_general_ci;
201
COLLATE = utf8_general_ci;
Line 182... Line 202...
182
 
202
 
-
 
203
 
-
 
204
-- -----------------------------------------------------
-
 
205
-- Table `cel_obs_etendues`
-
 
206
-- -----------------------------------------------------
-
 
207
DROP TABLE IF EXISTS `cel_obs_etendues` ;
-
 
208
 
-
 
209
CREATE  TABLE IF NOT EXISTS `cel_obs_etendues` (
-
 
210
  `id_observation` BIGINT NOT NULL ,
-
 
211
  `cle` VARCHAR(255) NOT NULL ,
-
 
212
  `valeur` VARCHAR(255) NOT NULL ,
-
 
213
  PRIMARY KEY (`id_observation`, `cle`) )
-
 
214
ENGINE = MyISAM
-
 
215
DEFAULT CHARACTER SET = utf8
-
 
216
COLLATE = utf8_general_ci
-
 
217
COMMENT = 'Stockage d\'infos supplémentaires sur une observation';
-
 
218
 
183
 
219
 
184
-- -----------------------------------------------------
220
-- -----------------------------------------------------
185
-- Table `cel_obs`
221
-- Table `cel_obs`
Line 186... Line 222...
186
-- -----------------------------------------------------
222
-- -----------------------------------------------------
Line 213... Line 249...
213
  `commentaire` TEXT NULL DEFAULT NULL ,
249
  `commentaire` TEXT NULL DEFAULT NULL ,
214
  `transmission` TINYINT(1) NULL DEFAULT NULL ,
250
  `transmission` TINYINT(1) NULL DEFAULT NULL ,
215
  `date_creation` DATETIME NULL DEFAULT NULL ,
251
  `date_creation` DATETIME NULL DEFAULT NULL ,
216
  `date_modification` DATETIME NULL DEFAULT NULL ,
252
  `date_modification` DATETIME NULL DEFAULT NULL ,
217
  `date_transmission` DATETIME NULL DEFAULT NULL ,
253
  `date_transmission` DATETIME NULL DEFAULT NULL ,
-
 
254
  `abondance` VARCHAR(50) NULL ,
-
 
255
  `certitude` VARCHAR(255) NULL ,
218
  PRIMARY KEY (`id_observation`) ,
256
  PRIMARY KEY (`id_observation`) ,
219
  INDEX `id_obs` (`ordre` ASC, `ce_utilisateur` ASC) ,
257
  INDEX `id_obs` (`ordre` ASC, `ce_utilisateur` ASC) ,
220
  INDEX `date_creation` (`ce_utilisateur` ASC, `date_creation` ASC) ,
258
  INDEX `date_creation` (`ce_utilisateur` ASC, `date_creation` ASC) ,
221
  INDEX `coordonnees` (`latitude` ASC, `longitude` ASC) ,
259
  INDEX `coordonnees` (`latitude` ASC, `longitude` ASC) ,
222
  INDEX `nom_retenu` (`nom_ret` ASC) ,
260
  INDEX `nom_retenu` (`nom_ret` ASC) ,
Line 243... Line 281...
243
COLLATE = utf8_general_ci
281
COLLATE = utf8_general_ci
244
COMMENT = 'Contient les infos utilisateurs spécifiques au CEL.\nA utilis' /* comment truncated */;
282
COMMENT = 'Contient les infos utilisateurs spécifiques au CEL.\nA utilis' /* comment truncated */;
Line 245... Line 283...
245
 
283
 
-
 
284
 
-
 
285
-- -----------------------------------------------------
-
 
286
-- Table `cel_images_etendues`
-
 
287
-- -----------------------------------------------------
-
 
288
DROP TABLE IF EXISTS `cel_images_etendues` ;
-
 
289
 
-
 
290
CREATE  TABLE IF NOT EXISTS `cel_images_etendues` (
-
 
291
  `id_observation` BIGINT NOT NULL ,
-
 
292
  `cle` VARCHAR(255) NOT NULL ,
-
 
293
  `valeur` VARCHAR(255) NOT NULL ,
-
 
294
  PRIMARY KEY (`id_observation`, `cle`) )
-
 
295
ENGINE = MyISAM
-
 
296
DEFAULT CHARACTER SET = utf8
-
 
297
COLLATE = utf8_general_ci
-
 
298
COMMENT = 'Stockage d\'info supplémentaires sur une image';
-
 
299
 
246
 
300
 
247
-- -----------------------------------------------------
301
-- -----------------------------------------------------
248
-- Placeholder table for view `cel_utilisateurs`
302
-- Placeholder table for view `cel_utilisateurs`
Line 249... Line 303...
249
-- -----------------------------------------------------
303
-- -----------------------------------------------------
250
CREATE TABLE IF NOT EXISTS `cel_utilisateurs` (`id_utilisateur` INT, `prenom` INT, `nom` INT, `courriel` INT, `mot_de_passe` INT, `licence_acceptee` INT, `admin` INT, `preferences` INT, `date_premiere_utilisation` INT);
304
CREATE TABLE IF NOT EXISTS `cel_utilisateurs` (`id_utilisateur` INT, `prenom` INT, `nom` INT, `courriel` INT, `mot_de_passe` INT, `licence_acceptee` INT, `admin` INT, `preferences` INT, `date_premiere_utilisation` INT);
251
 
305
 
252
-- -----------------------------------------------------
306
-- -----------------------------------------------------
Line 253... Line 307...
253
-- Placeholder table for view `cel_tapir`
307
-- Placeholder table for view `cel_tapir`
254
-- -----------------------------------------------------
308
-- -----------------------------------------------------
255
CREATE TABLE IF NOT EXISTS `cel_tapir` (`guid` INT, `observation_id` INT, `observation_date` INT, `nom_scientifique_complet` INT, `nom_num_nomenclatural` INT, `nom_num_taxonomique` INT, `nom_famille` INT, `lieu_commune_nom_complet` INT, `lieu_commune_nom` INT, `lieu_commune_code_insee` INT, `lieu_commune_utm_coordonnees_bruts` INT, `lieu_commune_utm_zone` INT, `lieu_commune_utm_x` INT, `lieu_commune_utm_y` INT, `lieu_latitude` INT, `lieu_longitude` INT, `lieu_geodatum` INT, `lieu_localite` INT, `observateur_prenom` INT, `observateur_nom` INT, `observateur_courriel` INT, `observateur_intitule` INT, `observation_commentaire` INT, `observation_information_complement` INT, `saisie_date_modification` INT, `saisie_date_creation` INT);
309
CREATE TABLE IF NOT EXISTS `cel_tapir` (`guid` INT, `observation_id` INT, `observation_date` INT, `nom_scientifique_complet` INT, `nom_num_nomenclatural` INT, `nom_num_taxonomique` INT, `nom_famille` INT, `lieu_commune_nom_complet` INT, `lieu_commune_nom` INT, `lieu_commune_code_insee` INT, `lieu_commune_source` INT, `lieu_latitude` INT, `lieu_longitude` INT, `lieu_geodatum` INT, `lieu_georeference_source` INT, `lieu_localite` INT, `observateur_prenom` INT, `observateur_nom` INT, `observateur_courriel` INT, `observateur_nom_complet` INT, `observateur_intitule` INT, `observation_commentaire` INT, `observation_information_complement` INT, `saisie_date_modification` INT, `saisie_date_creation` INT);
256
 
310
 
Line 270... Line 324...
270
-- -----------------------------------------------------
324
-- -----------------------------------------------------
271
DROP VIEW IF EXISTS `cel_tapir` ;
325
DROP VIEW IF EXISTS `cel_tapir` ;
272
DROP TABLE IF EXISTS `cel_tapir`;
326
DROP TABLE IF EXISTS `cel_tapir`;
273
DELIMITER $$
327
DELIMITER $$
274
CREATE  OR REPLACE VIEW `cel_tapir` AS 
328
CREATE  OR REPLACE VIEW `cel_tapir` AS 
275
    SELECT concat(_utf8'urn:lsid:tela-botanica.org:cel:', o.id_observation) AS guid,
329
	select concat(_utf8'urn:lsid:tela-botanica.org:cel:',`o`.`id_observation`) AS `guid`,
276
        o.id_observation AS observation_id,
330
		`o`.`id_observation` AS `observation_id`,
277
        date_format(o.date_observation,'%Y-%m-%d') AS observation_date,
331
		date_format(`o`.`date_observation`,'%Y-%m-%d') AS `observation_date`,
278
        o.nom_sel AS nom_scientifique_complet,
332
		`o`.`nom_sel` AS `nom_scientifique_complet`,
279
        o.nom_sel_nn AS nom_num_nomenclatural,
333
		`o`.`nom_sel_nn` AS `nom_num_nomenclatural`,
280
        o.nt AS nom_num_taxonomique,
334
		`o`.`nt` AS `nom_num_taxonomique`,
281
        o.famille AS nom_famille,
335
		`o`.`famille` AS `nom_famille`,
282
        concat(_utf8'',zg.nom,' [INSEE:',zg.code,']') AS lieu_commune_nom_complet,
336
		concat(_utf8'',`zg`.`nom`,' [INSEE:',`zg`.`code`,']') AS `lieu_commune_nom_complet`,
283
        zg.nom AS lieu_commune_nom,
337
		`zg`.`nom` AS `lieu_commune_nom`,
284
        zg.code AS lieu_commune_code_insee,
338
		`zg`.`code` AS `lieu_commune_code_insee`,
285
        concat(zg.utm_secteur,' ',zg.utm_x,'m E ',zg.utm_y,'m N') AS lieu_commune_utm_coordonnees_bruts,
339
		if((`zg`.`code` <> ''), 'Lion1906 version 26-05-2008 - http://www.lion1906.com/', NULL) AS `lieu_commune_source`,
286
        zg.utm_secteur AS lieu_commune_utm_zone,
-
 
287
        zg.utm_x AS lieu_commune_utm_x,
-
 
288
        zg.utm_y AS lieu_commune_utm_y,
-
 
289
        o.latitude AS lieu_latitude,
340
		format(if((`o`.`latitude` <> ''), `o`.`latitude`, `zg`.`wgs84_latitude`), 5) AS `lieu_latitude`,
290
        o.longitude AS lieu_longitude,
341
		format(if((`o`.`longitude` <> ''), `o`.`longitude`, `zg`.`wgs84_longitude`), 5) AS `lieu_longitude`,
291
        o.geodatum AS lieu_geodatum,
342
		`o`.`geodatum` AS `lieu_geodatum`,
-
 
343
		if((`o`.`geodatum` <> ''), 'Coordonnées issues de l''utilisation de Google Map', NULL) AS `lieu_georeference_source`,
292
        o.lieudit AS lieu_localite,
344
		`o`.`lieudit` AS `lieu_localite`,
293
        o.prenom_utilisateur AS observateur_prenom,
345
		`o`.`prenom_utilisateur` AS `observateur_prenom`,
294
        o.nom_utilisateur AS observateur_nom,
346
		`o`.`nom_utilisateur` AS `observateur_nom`,
295
        o.courriel_utilisateur AS observateur_courriel,
347
		`o`.`courriel_utilisateur` AS `observateur_courriel`,
296
        concat(o.prenom_utilisateur,_utf8' ',o.nom_utilisateur) AS observateur_intitule,
348
		concat(`o`.`prenom_utilisateur`,_utf8' ',`o`.`nom_utilisateur`) AS `observateur_nom_complet`,
-
 
349
		concat_ws(' ',`o`.`prenom_utilisateur`,`o`.`nom_utilisateur`,concat('<',`o`.`courriel_utilisateur`,'>')) AS `observateur_intitule`,
297
        o.commentaire AS observation_commentaire,
350
		`o`.`commentaire` AS `observation_commentaire`,
298
        concat(_utf8'<?xml version="1.0" encoding="UTF-8"?>',
-
 
299
            '<info>',
-
 
300
            '<nom_num_nomenclatural>',o.nom_sel_nn,'</nom_num_nomenclatural>',
351
		concat(_utf8'nom_num_nomenclatural=',`o`.`nom_sel_nn`,'; ',
301
            '<nom_ret>',o.nom_ret,'</nom_ret>',
352
			'nom_ret=',encodeToDcsv(`o`.`nom_ret`),'; ',
302
            '<nom_num_ret>',o.nom_ret_nn,'</nom_num_ret>',
353
			'nom_num_ret=',`o`.`nom_ret_nn`,'; ',
303
            '<nom_num_taxonomique>',o.nt,'</nom_num_taxonomique>',
354
			'nom_num_taxonomique=',`o`.`nt`,'; ',
304
            '<nom_referentiel>',o.nom_referentiel,'</nom_referentiel>',
355
			'nom_referentiel=',encodeToDcsv(`o`.`nom_referentiel`),'; ',
305
            '<saisie_date_transmission>',o.date_transmission,'</saisie_date_transmission>',
356
			'saisie_date_transmission=',`o`.`date_transmission`,'; ',
306
            '<saisie_date_creation>',o.date_creation,'</saisie_date_creation>',
357
			'saisie_date_creation=',`o`.`date_creation`,'; ',
307
            '<ordre>',o.ordre,'</ordre>',
358
			'ordre=',`o`.`ordre`,'; ',
308
            '<station>',o.station,'</station>',
359
			'station=',encodeToDcsv(`o`.`station`),'; ',
309
            '<milieu>',o.milieu,'</milieu>',
360
			'milieu=',encodeToDcsv(`o`.`milieu`),'; ',
310
            '<mots_cles>',o.mots_cles_texte,'</mots_cles>',
361
			'mots_cles=',encodeToDcsv(`o`.`mots_cles_texte`),'; ',
311
            '<zg_utm_secteur>',zg.utm_secteur,'</zg_utm_secteur>',
362
			'zg_utm_secteur=',encodeToDcsv(`zg`.`utm_secteur`),'; ',
312
            '<zg_date_modification>',zg.date_modification,'</zg_date_modification>',
363
			'zg_date_modification=',`zg`.`date_modification`) AS `observation_information_complement`,
313
            '</info>') AS observation_information_complement,
-
 
314
        o.date_modification AS saisie_date_modification,
364
		`o`.`date_modification` AS `saisie_date_modification`,
315
        o.date_creation AS saisie_date_creation 
365
		`o`.`date_creation` AS `saisie_date_creation` 
316
    FROM cel_obs AS o
366
	from (`cel_obs` `o` 
317
        LEFT JOIN cel_zones_geo AS zg ON (o.ce_zone_geo = zg.id_zone_geo)
367
		left join `cel_zones_geo` `zg` on((`o`.`ce_zone_geo` = `zg`.`id_zone_geo`))) 
318
    WHERE o.transmission = 1;
368
	where `o`.`transmission` = 1 
-
 
369
		AND (`o`.`mots_cles_texte` NOT LIKE '%sensible%' OR `o`.`mots_cles_texte` IS NULL);
319
$$
370
$$
320
DELIMITER ;
371
DELIMITER ;
Line 321... Line 372...
321
 
372