Subversion Repositories eFlore/Applications.cel

Rev

Rev 2063 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2063 aurelien 1
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
2
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
3
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
4
 
5
 
6
-- -----------------------------------------------------
7
-- Table `cel_obs_images`
8
-- -----------------------------------------------------
9
DROP TABLE IF EXISTS `cel_obs_images` ;
10
 
11
CREATE  TABLE IF NOT EXISTS `cel_obs_images` (
12
  `id_image` BIGINT NOT NULL ,
13
  `id_observation` BIGINT NOT NULL ,
14
  `date_liaison` DATETIME NOT NULL ,
15
  PRIMARY KEY (`id_image`, `id_observation`) ,
16
  INDEX `observation` (`id_observation` ASC) ,
17
  INDEX `image` (`id_image` ASC) )
18
ENGINE = MyISAM
19
DEFAULT CHARACTER SET = utf8
20
COLLATE = utf8_unicode_ci;
21
 
22
 
23
-- -----------------------------------------------------
24
-- Table `cel_utilisateurs`
25
-- -----------------------------------------------------
26
DROP TABLE IF EXISTS `cel_utilisateurs` ;
27
 
28
CREATE  TABLE IF NOT EXISTS `cel_utilisateurs` (
29
  `id_utilisateur` INT NOT NULL ,
30
  `prenom` VARCHAR(255) NULL DEFAULT NULL ,
31
  `nom` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
32
  `courriel` VARCHAR(255) NOT NULL ,
33
  `mot_de_passe` VARCHAR(45) NOT NULL ,
34
  `admin` TINYINT(1) NULL DEFAULT '0' ,
35
  `licence_acceptee` TINYINT(1) NULL DEFAULT '0' COMMENT 'Acceptation de la licence utilisateur pour le cel\n' ,
36
  `preferences` LONGTEXT NULL DEFAULT NULL COMMENT 'Préférences utilisateur sérialisées sous une forme à définir\n' ,
37
  `date__premiere_utilisation` DATETIME NOT NULL ,
38
  PRIMARY KEY (`id_utilisateur`) )
39
ENGINE = MyISAM
40
DEFAULT CHARACTER SET = utf8
41
COLLATE = utf8_general_ci;
42
 
43
 
44
-- -----------------------------------------------------
2064 aurelien 45
-- Table `cel_arbre_mots_cles_images`
46
-- -----------------------------------------------------
47
DROP TABLE IF EXISTS `cel_arbre_mots_cles_images` ;
48
 
49
CREATE  TABLE IF NOT EXISTS `cel_arbre_mots_cles_images` (
50
  `id_mot_cle` INT NOT NULL ,
51
  `chemin` VARCHAR(2048) NULL ,
52
  `mot_cle` VARCHAR(80) NULL ,
53
  `id_utilisateur` VARCHAR(255) NULL ,
54
  PRIMARY KEY (`id_mot_cle`) )
55
ENGINE = MyISAM;
56
 
57
 
58
-- -----------------------------------------------------
2063 aurelien 59
-- Table `cel_mots_cles_images_liaison`
60
-- -----------------------------------------------------
61
DROP TABLE IF EXISTS `cel_mots_cles_images_liaison` ;
62
 
63
CREATE  TABLE IF NOT EXISTS `cel_mots_cles_images_liaison` (
64
  `id_element_lie` INT NOT NULL ,
65
  `id_mot_cle` INT NOT NULL ,
66
  PRIMARY KEY (`id_element_lie`, `id_mot_cle`) )
67
ENGINE = MyISAM;
68
 
69
 
70
-- -----------------------------------------------------
71
-- Table `cel_images`
72
-- -----------------------------------------------------
73
DROP TABLE IF EXISTS `cel_images` ;
74
 
75
CREATE  TABLE IF NOT EXISTS `cel_images` (
76
  `id_image` BIGINT NOT NULL AUTO_INCREMENT ,
77
  `ordre` BIGINT NOT NULL ,
2064 aurelien 78
  `ce_utilisateur` VARCHAR(255) NOT NULL COMMENT 'L\'id utilisateur est un int mais on utilise un varchar pour stocker des observations avec des identifiants temporaires\n' ,
2063 aurelien 79
  `prenom_utilisateur` VARCHAR(255) NULL DEFAULT NULL ,
80
  `nom_utilisateur` VARCHAR(255) NULL DEFAULT NULL ,
81
  `courriel_utilisateur` VARCHAR(255) NULL DEFAULT NULL ,
82
  `hauteur` INT NOT NULL ,
83
  `largeur` INT NOT NULL ,
84
  `appareil_fabriquant` VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
85
  `appareil_modele` VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
86
  `date_prise_de_vue` DATETIME NULL DEFAULT NULL ,
87
  `note_qualite` DECIMAL(1,0) NULL DEFAULT NULL ,
88
  `mots_cles_texte` LONGTEXT NULL DEFAULT NULL COMMENT 'Champ calculé contenant la liste des mots clés utilisateurs séparé par des virgules.\n' ,
89
  `commentaire` LONGTEXT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
90
  `nom_original` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
91
  `md5` VARCHAR(32) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
92
  `meta_exif` LONGTEXT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
93
  `meta_iptc` LONGTEXT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
94
  `meta_xmp` LONGTEXT NULL DEFAULT NULL ,
95
  `meta_makernote` LONGTEXT NULL DEFAULT NULL ,
96
  `meta_autres` LONGTEXT NULL DEFAULT NULL ,
97
  `date_modification` DATETIME NOT NULL ,
98
  `date_creation` DATETIME NOT NULL COMMENT 'Date d\'ajout de l\'image au CEL.' ,
99
  `publiable_eflore` TINYINT(1) NOT NULL DEFAULT 1 ,
100
  PRIMARY KEY (`id_image`) ,
101
  INDEX `id_image` (`id_image` ASC, `ordre` ASC, `ce_utilisateur` ASC) )
102
ENGINE = MyISAM
103
AUTO_INCREMENT = 265
104
DEFAULT CHARACTER SET = utf8
105
COLLATE = utf8_general_ci;
106
 
107
 
108
-- -----------------------------------------------------
109
-- Table `cel_zones_geo`
110
-- -----------------------------------------------------
111
DROP TABLE IF EXISTS `cel_zones_geo` ;
112
 
113
CREATE  TABLE IF NOT EXISTS `cel_zones_geo` (
114
  `id_zone_geo` VARCHAR(50) NOT NULL ,
115
  `code` VARCHAR(10) NOT NULL ,
116
  `nom` VARCHAR(255) NOT NULL ,
117
  `utm_secteur` CHAR(3) NOT NULL ,
118
  `utm_x` INT NOT NULL DEFAULT '0' ,
119
  `utm_y` INT NOT NULL DEFAULT '0' ,
120
  `wgs84_latitude` FLOAT NOT NULL ,
121
  `wgs84_longitude` FLOAT NOT NULL ,
122
  `date_modification` DATETIME NOT NULL ,
123
  `ce_zone_geo_parente` VARCHAR(50) NULL DEFAULT NULL ,
124
  `bg` BIGINT NULL ,
125
  `bd` BIGINT NULL ,
126
  `niveau` INT NULL ,
127
  PRIMARY KEY (`id_zone_geo`) ,
128
  INDEX `nom` (`nom` ASC) )
129
ENGINE = MyISAM
130
DEFAULT CHARACTER SET = utf8
131
COLLATE = utf8_general_ci;
132
 
133
 
134
-- -----------------------------------------------------
135
-- Table `cel_obs_etendues`
136
-- -----------------------------------------------------
137
DROP TABLE IF EXISTS `cel_obs_etendues` ;
138
 
139
CREATE  TABLE IF NOT EXISTS `cel_obs_etendues` (
140
  `id_observation` BIGINT NOT NULL ,
141
  `cle` VARCHAR(255) NOT NULL COMMENT 'Clé du champ au format chat mot (sans accents).\nEx. : maCle, uneAutreCle' ,
142
  `label` VARCHAR(255) NOT NULL COMMENT 'Intitulé du champ à afficher dans les formulaires.' ,
143
  `valeur` TEXT NOT NULL COMMENT 'Valeur du champ.' ,
144
  PRIMARY KEY (`id_observation`, `cle`) )
145
ENGINE = MyISAM
146
DEFAULT CHARACTER SET = utf8
147
COLLATE = utf8_general_ci
148
COMMENT = 'Stockage d\'infos supplémentaires sur une observation';
149
 
150
 
151
-- -----------------------------------------------------
2064 aurelien 152
-- Table `cel_arbre_mots_cles_obs`
2063 aurelien 153
-- -----------------------------------------------------
2064 aurelien 154
DROP TABLE IF EXISTS `cel_arbre_mots_cles_obs` ;
2063 aurelien 155
 
2064 aurelien 156
CREATE  TABLE IF NOT EXISTS `cel_arbre_mots_cles_obs` (
2063 aurelien 157
  `id_mot_cle` INT NOT NULL ,
158
  `chemin` VARCHAR(2048) NULL ,
2064 aurelien 159
  `mot_cle` VARCHAR(80) NULL ,
2063 aurelien 160
  `id_utilisateur` VARCHAR(255) NULL ,
161
  PRIMARY KEY (`id_mot_cle`) )
162
ENGINE = MyISAM;
163
 
164
 
165
-- -----------------------------------------------------
166
-- Table `cel_mots_cles_obs_liaison`
167
-- -----------------------------------------------------
168
DROP TABLE IF EXISTS `cel_mots_cles_obs_liaison` ;
169
 
170
CREATE  TABLE IF NOT EXISTS `cel_mots_cles_obs_liaison` (
171
  `id_element_lie` INT NOT NULL ,
172
  `id_mot_cle` INT NOT NULL ,
173
  PRIMARY KEY (`id_element_lie`, `id_mot_cle`) )
174
ENGINE = MyISAM;
175
 
176
 
177
-- -----------------------------------------------------
178
-- Table `cel_obs`
179
-- -----------------------------------------------------
180
DROP TABLE IF EXISTS `cel_obs` ;
181
 
182
CREATE  TABLE IF NOT EXISTS `cel_obs` (
183
  `id_observation` BIGINT NOT NULL AUTO_INCREMENT ,
184
  `ordre` BIGINT NOT NULL ,
185
  `ce_utilisateur` VARCHAR(255) NOT NULL ,
186
  `prenom_utilisateur` VARCHAR(255) NULL DEFAULT NULL ,
187
  `nom_utilisateur` VARCHAR(255) NULL DEFAULT NULL ,
188
  `courriel_utilisateur` VARCHAR(255) NULL DEFAULT NULL ,
189
  `nom_sel` VARCHAR(601) NULL DEFAULT NULL COMMENT 'doit pouvoir contenir CONCAT(bdtfx.nom_sci, \" \", bdtfx.auteur) soit 601 caractères' ,
190
  `nom_sel_nn` DECIMAL(9,0) NULL DEFAULT NULL COMMENT 'Numéro du nom sélectionné.' ,
191
  `nom_ret` VARCHAR(601) NULL DEFAULT NULL COMMENT 'doit pouvoir contenir CONCAT(bdtfx.nom_sci, \" \", bdtfx.auteur) soit 601 caractères' ,
192
  `nom_ret_nn` DECIMAL(9,0) NULL DEFAULT NULL COMMENT 'Numéro du nom retenu = num_nom_retenu dans bdtfx' ,
193
  `nt` DECIMAL(9,0) NULL DEFAULT NULL COMMENT 'Numéro taxonomique.' ,
194
  `famille` VARCHAR(255) NULL DEFAULT NULL ,
195
  `nom_referentiel` VARCHAR(255) NULL DEFAULT NULL ,
196
  `ce_zone_geo` VARCHAR(50) NULL DEFAULT NULL ,
197
  `zone_geo` VARCHAR(255) NULL DEFAULT NULL ,
198
  `lieudit` VARCHAR(255) NULL DEFAULT NULL ,
199
  `station` VARCHAR(255) NULL DEFAULT NULL ,
200
  `milieu` VARCHAR(255) NULL DEFAULT NULL ,
201
  `latitude` DECIMAL(8,5) NULL DEFAULT NULL ,
202
  `longitude` DECIMAL(8,5) NULL DEFAULT NULL ,
203
  `altitude` INT(5) NULL DEFAULT NULL ,
204
  `geodatum` VARCHAR(25) NULL DEFAULT NULL COMMENT 'Référentiel géographique utilisé.\nPar exmple : WGS84' ,
205
  `date_observation` DATETIME NULL DEFAULT NULL ,
206
  `mots_cles_texte` LONGTEXT NULL DEFAULT NULL COMMENT 'Champ calculé contenant la liste des mots clés utilisateurs séparé par des virgules.' ,
207
  `commentaire` TEXT NULL DEFAULT NULL ,
208
  `transmission` TINYINT(1) NULL DEFAULT NULL ,
209
  `date_creation` DATETIME NULL DEFAULT NULL ,
210
  `date_modification` DATETIME NULL DEFAULT NULL ,
211
  `date_transmission` DATETIME NULL DEFAULT NULL ,
212
  `abondance` VARCHAR(50) NULL DEFAULT NULL ,
213
  `certitude` VARCHAR(255) NULL DEFAULT NULL ,
214
  `phenologie` VARCHAR(255) NULL DEFAULT NULL ,
215
  `code_insee_calcule` VARCHAR(5) NULL DEFAULT NULL COMMENT 'Code INSEE calculé par un scrip CRON.' ,
216
  PRIMARY KEY (`id_observation`) ,
217
  UNIQUE INDEX `id_obs` (`ce_utilisateur` ASC, `ordre` ASC) ,
218
  INDEX `date_creation` (`ce_utilisateur`(10) ASC, `date_creation` ASC) ,
219
  INDEX `coordonnees` (`latitude` ASC, `longitude` ASC) ,
220
  INDEX `nom_retenu` (`nom_ret` ASC) ,
2064 aurelien 221
  INDEX `date_observation` (`date_observation` ASC) COMMENT ' /* comment truncated */ /*Index sur (bdtfx,bdtfx,isfan)*/' ,
222
  INDEX `nom_referentiel` (`nom_referentiel`(5) ASC) COMMENT ' /* comment truncated */ /*Date_transmission : nécessaire à l'ORDER BY utilisé dans la liste d'observation de DEL*/' ,
223
  INDEX `date_transmission` (`date_transmission` DESC) COMMENT ' /* comment truncated */ /*Nécessaire à CEL/DEL qui officie avec transmission = 1*/' ,
2063 aurelien 224
  INDEX `transmission` (`transmission` ASC) )
225
ENGINE = MyISAM
226
DEFAULT CHARACTER SET = utf8
227
COLLATE = utf8_general_ci;
228
 
229
 
230
-- -----------------------------------------------------
231
-- Table `cel_utilisateurs_infos`
232
-- -----------------------------------------------------
233
DROP TABLE IF EXISTS `cel_utilisateurs_infos` ;
234
 
235
CREATE  TABLE IF NOT EXISTS `cel_utilisateurs_infos` (
236
  `id_utilisateur` INT NOT NULL ,
237
  `admin` TINYINT(1) NOT NULL DEFAULT 0 ,
238
  `licence_acceptee` TINYINT(1) NOT NULL DEFAULT 0 ,
239
  `preferences` LONGTEXT NULL DEFAULT NULL ,
240
  `date_premiere_utilisation` DATETIME NOT NULL ,
241
  PRIMARY KEY (`id_utilisateur`) )
242
ENGINE = MyISAM
243
DEFAULT CHARACTER SET = utf8
244
COLLATE = utf8_general_ci
245
COMMENT = 'Contient les infos utilisateurs spécifiques au CEL. À utilis /* comment truncated */ /*er avec une vue pour récupérer les infos de la table annuaire_tela.*/';
246
 
247
 
248
-- -----------------------------------------------------
249
-- Table `cel_images_etendues`
250
-- -----------------------------------------------------
251
DROP TABLE IF EXISTS `cel_images_etendues` ;
252
 
253
CREATE  TABLE IF NOT EXISTS `cel_images_etendues` (
254
  `id_observation` BIGINT NOT NULL ,
255
  `cle` VARCHAR(255) NOT NULL COMMENT 'Clé du champ au format chat mot (sans accents).\nEx. : maCle, uneAutreCle' ,
256
  `label` VARCHAR(45) NOT NULL COMMENT 'Intitulé du champ à afficher dans les formulaires.' ,
257
  `valeur` TEXT NOT NULL COMMENT 'Valeur du champ.' ,
258
  PRIMARY KEY (`id_observation`, `cle`) )
259
ENGINE = MyISAM
260
DEFAULT CHARACTER SET = utf8
261
COLLATE = utf8_general_ci
262
COMMENT = 'Stockage d\'info supplémentaires sur une image';
263
 
264
 
265
-- -----------------------------------------------------
266
-- Placeholder table for view `cel_utilisateurs`
267
-- -----------------------------------------------------
268
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);
269
 
270
-- -----------------------------------------------------
271
-- Placeholder table for view `cel_tapir`
272
-- -----------------------------------------------------
273
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);
274
 
275
-- -----------------------------------------------------
276
-- View `cel_utilisateurs`
277
-- -----------------------------------------------------
278
DROP VIEW IF EXISTS `cel_utilisateurs` ;
279
DROP TABLE IF EXISTS `cel_utilisateurs`;
2064 aurelien 280
CREATE  OR REPLACE VIEW `cel_utilisateurs` AS
281
	SELECT at.U_ID AS id_utilisateur, at.U_SURNAME AS prenom, at.U_NAME AS nom, at.U_MAIL AS courriel, at.U_PASSWD AS mot_de_passe,
282
		ui.licence_acceptee, ui.admin, ui.preferences, ui.date_premiere_utilisation
283
	FROM tela_prod_v4.annuaire_tela AS at
2063 aurelien 284
		LEFT JOIN cel_utilisateurs_infos AS ui ON (ui.id_utilisateur = at.U_ID);
285
 
286
-- -----------------------------------------------------
287
-- View `cel_tapir`
288
-- -----------------------------------------------------
289
DROP VIEW IF EXISTS `cel_tapir` ;
290
DROP TABLE IF EXISTS `cel_tapir`;
2064 aurelien 291
CREATE  OR REPLACE VIEW `cel_tapir` AS
292
	select concat(_utf8'urn:lsid:tela-botanica.org:cel:',`o`.`id_observation`) AS `guid`,
293
		`o`.`id_observation` AS `observation_id`,
294
		date_format(`o`.`date_observation`,'%Y-%m-%d') AS `observation_date`,
295
		`o`.`nom_sel` AS `nom_scientifique_complet`,
296
		`o`.`nom_sel_nn` AS `nom_num_nomenclatural`,
297
		`o`.`nt` AS `nom_num_taxonomique`,
298
		`o`.`famille` AS `nom_famille`,
299
		concat(_utf8'',`zg`.`nom`,' [INSEE:',`zg`.`code`,']') AS `lieu_commune_nom_complet`,
300
		`zg`.`nom` AS `lieu_commune_nom`,
301
		`zg`.`code` AS `lieu_commune_code_insee`,
302
		if((`zg`.`code` <> ''), 'Lion1906 version 26-05-2008 - http://www.lion1906.com/', NULL) AS `lieu_commune_source`,
303
		format(if((`o`.`latitude` <> ''), `o`.`latitude`, `zg`.`wgs84_latitude`), 5) AS `lieu_latitude`,
304
		format(if((`o`.`longitude` <> ''), `o`.`longitude`, `zg`.`wgs84_longitude`), 5) AS `lieu_longitude`,
305
		`o`.`geodatum` AS `lieu_geodatum`,
306
		if((`o`.`geodatum` <> ''), 'Coordonnées issues de l''utilisation de Google Map', NULL) AS `lieu_georeference_source`,
307
		`o`.`lieudit` AS `lieu_localite`,
308
		`o`.`prenom_utilisateur` AS `observateur_prenom`,
309
		`o`.`nom_utilisateur` AS `observateur_nom`,
310
		`o`.`courriel_utilisateur` AS `observateur_courriel`,
311
		concat(`o`.`prenom_utilisateur`,_utf8' ',`o`.`nom_utilisateur`) AS `observateur_nom_complet`,
312
		concat_ws(' ',`o`.`prenom_utilisateur`,`o`.`nom_utilisateur`,concat('<',`o`.`courriel_utilisateur`,'>')) AS `observateur_intitule`,
313
		`o`.`commentaire` AS `observation_commentaire`,
314
		concat(_utf8'nom_num_nomenclatural=',`o`.`nom_sel_nn`,'; ',
315
			'nom_ret=',encodeToDcsv(`o`.`nom_ret`),'; ',
316
			'nom_num_ret=',`o`.`nom_ret_nn`,'; ',
317
			'nom_num_taxonomique=',`o`.`nt`,'; ',
318
			'nom_referentiel=',encodeToDcsv(`o`.`nom_referentiel`),'; ',
319
			'saisie_date_transmission=',`o`.`date_transmission`,'; ',
320
			'saisie_date_creation=',`o`.`date_creation`,'; ',
321
			'ordre=',`o`.`ordre`,'; ',
322
			'station=',encodeToDcsv(`o`.`station`),'; ',
323
			'milieu=',encodeToDcsv(`o`.`milieu`),'; ',
324
			'mots_cles=',encodeToDcsv(`o`.`mots_cles_texte`),'; ',
325
			'zg_utm_secteur=',encodeToDcsv(`zg`.`utm_secteur`),'; ',
326
			'zg_date_modification=',`zg`.`date_modification`) AS `observation_information_complement`,
327
		`o`.`date_modification` AS `saisie_date_modification`,
328
		`o`.`date_creation` AS `saisie_date_creation`
329
	from (`cel_obs` `o`
330
		left join `cel_zones_geo` `zg` on((`o`.`ce_zone_geo` = `zg`.`id_zone_geo`)))
331
	where `o`.`transmission` = 1
2063 aurelien 332
		AND (`o`.`mots_cles_texte` NOT LIKE '%sensible%' OR `o`.`mots_cles_texte` IS NULL);
333
 
334
 
335
SET SQL_MODE=@OLD_SQL_MODE;
336
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
337
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
2064 aurelien 338