Project

General

Profile

1 8336 aaronmk
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
2
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
3 8612 aaronmk
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
4 8336 aaronmk
5 8633 aaronmk
CREATE SCHEMA IF NOT EXISTS `VegCore` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ;
6 8632 aaronmk
USE `VegCore` ;
7 8336 aaronmk
8
-- -----------------------------------------------------
9 8522 aaronmk
-- Table `source`
10 8336 aaronmk
-- -----------------------------------------------------
11 8632 aaronmk
DROP TABLE IF EXISTS `source` ;
12
13 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `source` (
14 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
15
  `parent` VARBINARY(767) NOT NULL ,
16
  `name` VARBINARY(767) NOT NULL ,
17 8624 aaronmk
  `first_publisher` VARBINARY(767) NULL DEFAULT NULL ,
18 8689 aaronmk
  `owner` VARBINARY(767) NULL DEFAULT NULL ,
19 8579 aaronmk
  `info` SET('hstore') NULL ,
20 8523 aaronmk
  PRIMARY KEY (`id`) ,
21 8612 aaronmk
  INDEX `fk_source1_idx` (`parent` ASC) ,
22 8689 aaronmk
  INDEX `fk_source_party1_idx` (`owner` ASC) ,
23 8589 aaronmk
  UNIQUE INDEX `source_unique` (`parent` ASC, `name` ASC) ,
24 8612 aaronmk
  INDEX `fk_source_party2_idx` (`first_publisher` ASC) ,
25 8336 aaronmk
  CONSTRAINT `fk_source1`
26 8523 aaronmk
    FOREIGN KEY (`parent` )
27
    REFERENCES `source` (`id` )
28 8524 aaronmk
    ON DELETE CASCADE
29 8584 aaronmk
    ON UPDATE CASCADE,
30
  CONSTRAINT `fk_source_party1`
31 8689 aaronmk
    FOREIGN KEY (`owner` )
32 8584 aaronmk
    REFERENCES `party` (`id` )
33
    ON DELETE CASCADE
34 8595 aaronmk
    ON UPDATE CASCADE,
35
  CONSTRAINT `fk_source_party2`
36
    FOREIGN KEY (`first_publisher` )
37
    REFERENCES `party` (`id` )
38
    ON DELETE CASCADE
39 8524 aaronmk
    ON UPDATE CASCADE)
40 8336 aaronmk
ENGINE = InnoDB
41 8621 aaronmk
DEFAULT CHARACTER SET = utf8
42 8688 aaronmk
COLLATE = utf8_bin
43
COMMENT = 'a \"reference [...] cited within the database\" (\"VegBank\":http://vegbank.org/vegbank/views/dba_tabledescription_detail.jsp?view=detail&wparam=reference&entity=dba_tabledescription&where=where_tablename)';
44 8336 aaronmk
45
46
-- -----------------------------------------------------
47 8522 aaronmk
-- Table `record`
48 8336 aaronmk
-- -----------------------------------------------------
49 8632 aaronmk
DROP TABLE IF EXISTS `record` ;
50
51 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `record` (
52 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
53
  `source` VARBINARY(767) NOT NULL ,
54 8663 aaronmk
  `source_id_scope` VARBINARY(767) NULL ,
55 8624 aaronmk
  `source_record_id` VARBINARY(767) NULL DEFAULT NULL ,
56 8686 aaronmk
  `info` SET('hstore') NULL ,
57 8523 aaronmk
  PRIMARY KEY (`id`) ,
58 8612 aaronmk
  INDEX `fk_record_source1_idx` (`source` ASC) ,
59 8663 aaronmk
  UNIQUE INDEX `record_unique` (`source` ASC, `source_id_scope` ASC, `source_record_id` ASC) ,
60 8336 aaronmk
  CONSTRAINT `fk_record_source1`
61
    FOREIGN KEY (`source` )
62 8523 aaronmk
    REFERENCES `source` (`id` )
63 8524 aaronmk
    ON DELETE CASCADE
64
    ON UPDATE CASCADE)
65 8336 aaronmk
ENGINE = InnoDB
66 8621 aaronmk
DEFAULT CHARACTER SET = utf8
67
COLLATE = utf8_bin;
68 8336 aaronmk
69
70
-- -----------------------------------------------------
71 8623 aaronmk
-- Table `party`
72
-- -----------------------------------------------------
73 8632 aaronmk
DROP TABLE IF EXISTS `party` ;
74
75 8623 aaronmk
CREATE  TABLE IF NOT EXISTS `party` (
76
  `id` VARBINARY(767) NOT NULL ,
77
  `info` SET('hstore') NULL ,
78
  PRIMARY KEY (`id`) ,
79
  CONSTRAINT `fk_collection_source10`
80
    FOREIGN KEY (`id` )
81
    REFERENCES `record` (`id` )
82
    ON DELETE CASCADE
83
    ON UPDATE CASCADE)
84
ENGINE = InnoDB
85
DEFAULT CHARACTER SET = utf8
86
COLLATE = utf8_bin;
87
88
89
-- -----------------------------------------------------
90 8522 aaronmk
-- Table `relationship`
91 8336 aaronmk
-- -----------------------------------------------------
92 8632 aaronmk
DROP TABLE IF EXISTS `relationship` ;
93
94 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `relationship` (
95 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
96
  `record` VARBINARY(767) NOT NULL ,
97
  `related_record` VARBINARY(767) NOT NULL ,
98 8579 aaronmk
  `info` SET('hstore') NULL ,
99 8523 aaronmk
  PRIMARY KEY (`id`) ,
100 8612 aaronmk
  INDEX `fk_relationship_record1_idx` (`record` ASC) ,
101
  INDEX `fk_relationship_related_record_idx` (`related_record` ASC) ,
102 8336 aaronmk
  CONSTRAINT `fk_relationship_record1`
103 8523 aaronmk
    FOREIGN KEY (`id` )
104
    REFERENCES `record` (`id` )
105 8336 aaronmk
    ON DELETE CASCADE
106
    ON UPDATE CASCADE,
107 8622 aaronmk
  CONSTRAINT `fk_relationship_record2`
108 8336 aaronmk
    FOREIGN KEY (`record` )
109 8523 aaronmk
    REFERENCES `record` (`id` )
110 8524 aaronmk
    ON DELETE CASCADE
111
    ON UPDATE CASCADE,
112 8336 aaronmk
  CONSTRAINT `fk_relationship_related_record`
113
    FOREIGN KEY (`related_record` )
114 8523 aaronmk
    REFERENCES `record` (`id` )
115 8524 aaronmk
    ON DELETE CASCADE
116
    ON UPDATE CASCADE)
117 8336 aaronmk
ENGINE = InnoDB
118 8621 aaronmk
DEFAULT CHARACTER SET = utf8
119 8688 aaronmk
COLLATE = utf8_bin
120
COMMENT = '\"information pertaining to relationships between resources (instances of data records, such as Occurrences, Taxa, Locations, Events)\" (\"DwC\":http://rs.tdwg.org/dwc/terms/#ResourceRelationship)';
121 8336 aaronmk
122
123
-- -----------------------------------------------------
124 8677 aaronmk
-- Table `organization`
125
-- -----------------------------------------------------
126
DROP TABLE IF EXISTS `organization` ;
127
128
CREATE  TABLE IF NOT EXISTS `organization` (
129
  `id` VARBINARY(767) NOT NULL ,
130
  `info` SET('hstore') NULL ,
131
  PRIMARY KEY (`id`) ,
132
  CONSTRAINT `fk_organization_party1`
133
    FOREIGN KEY (`id` )
134
    REFERENCES `party` (`id` )
135
    ON DELETE CASCADE
136
    ON UPDATE CASCADE)
137
ENGINE = InnoDB
138
DEFAULT CHARACTER SET = utf8
139
COLLATE = utf8_bin;
140
141
142
-- -----------------------------------------------------
143 8623 aaronmk
-- Table `collection`
144 8554 aaronmk
-- -----------------------------------------------------
145 8632 aaronmk
DROP TABLE IF EXISTS `collection` ;
146
147 8623 aaronmk
CREATE  TABLE IF NOT EXISTS `collection` (
148 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
149 8677 aaronmk
  `institution` VARBINARY(767) NOT NULL ,
150
  `name` VARBINARY(767) NOT NULL ,
151
  INDEX `fk_collection_organization1_idx` (`institution` ASC) ,
152
  UNIQUE INDEX `collection_unique` (`institution` ASC, `name` ASC) ,
153 8680 aaronmk
  INDEX `fk_collection_source1_idx` (`id` ASC) ,
154 8683 aaronmk
  PRIMARY KEY (`id`) ,
155 8623 aaronmk
  CONSTRAINT `fk_collection_source1`
156 8554 aaronmk
    FOREIGN KEY (`id` )
157 8680 aaronmk
    REFERENCES `record` (`id` )
158 8623 aaronmk
    ON DELETE CASCADE
159 8677 aaronmk
    ON UPDATE CASCADE,
160
  CONSTRAINT `fk_collection_organization1`
161
    FOREIGN KEY (`institution` )
162
    REFERENCES `organization` (`id` )
163
    ON DELETE CASCADE
164 8623 aaronmk
    ON UPDATE CASCADE)
165
ENGINE = InnoDB
166
DEFAULT CHARACTER SET = utf8
167 8688 aaronmk
COLLATE = utf8_bin
168
COMMENT = '\"the collection within the institution where a specimen is held\" (\"Brad Boyle\":https://projects.nceas.ucsb.edu/nceas/attachments/download/621/vegbien_identifier_examples.xlsx#terms/collectionCode)';
169 8623 aaronmk
170
171
-- -----------------------------------------------------
172
-- Table `taxon_assertion`
173
-- -----------------------------------------------------
174 8632 aaronmk
DROP TABLE IF EXISTS `taxon_assertion` ;
175
176 8623 aaronmk
CREATE  TABLE IF NOT EXISTS `taxon_assertion` (
177
  `id` VARBINARY(767) NOT NULL ,
178
  `string` VARBINARY(767) NOT NULL ,
179 8624 aaronmk
  `taxon` VARBINARY(767) NULL DEFAULT NULL ,
180
  `cf_aff` VARBINARY(767) NULL DEFAULT NULL ,
181 8623 aaronmk
  `annotations` SET('hstore') NULL ,
182
  PRIMARY KEY (`id`) ,
183
  INDEX `fk_taxon_assertion_taxon_string1_idx` (`string` ASC) ,
184
  INDEX `fk_taxon_assertion_taxon_name1_idx` (`taxon` ASC) ,
185
  CONSTRAINT `fk_qualified_taxon_record1`
186
    FOREIGN KEY (`id` )
187 8554 aaronmk
    REFERENCES `record` (`id` )
188
    ON DELETE CASCADE
189
    ON UPDATE CASCADE,
190 8623 aaronmk
  CONSTRAINT `fk_taxon_assertion_taxon_string1`
191
    FOREIGN KEY (`string` )
192 8555 aaronmk
    REFERENCES `taxon_string` (`string` )
193
    ON DELETE CASCADE
194 8623 aaronmk
    ON UPDATE CASCADE,
195
  CONSTRAINT `fk_taxon_assertion_taxon_name1`
196
    FOREIGN KEY (`taxon` )
197
    REFERENCES `taxon_name` (`id` )
198
    ON DELETE CASCADE
199 8554 aaronmk
    ON UPDATE CASCADE)
200
ENGINE = InnoDB
201 8621 aaronmk
DEFAULT CHARACTER SET = utf8
202
COLLATE = utf8_bin;
203 8554 aaronmk
204
205
-- -----------------------------------------------------
206 8676 aaronmk
-- Table `taxon_concept`
207
-- -----------------------------------------------------
208
DROP TABLE IF EXISTS `taxon_concept` ;
209
210
CREATE  TABLE IF NOT EXISTS `taxon_concept` (
211
  `id` VARBINARY(767) NOT NULL ,
212
  `according_to` VARBINARY(767) NOT NULL ,
213
  `parent` VARBINARY(767) NOT NULL ,
214
  `accepted_taxon_concept` VARBINARY(767) NULL DEFAULT NULL ,
215
  PRIMARY KEY (`id`) ,
216
  INDEX `fk_taxon_taxon1_idx` (`parent` ASC) ,
217
  INDEX `fk_taxon_concept_source1_idx` (`according_to` ASC) ,
218
  INDEX `fk_taxon_concept_taxon_concept1_idx` (`accepted_taxon_concept` ASC) ,
219
  UNIQUE INDEX `taxon_concept_unique_name` (`according_to` ASC) ,
220
  CONSTRAINT `fk_taxon_taxon1`
221
    FOREIGN KEY (`parent` )
222
    REFERENCES `taxon_concept` (`id` )
223
    ON DELETE CASCADE
224
    ON UPDATE CASCADE,
225
  CONSTRAINT `fk_taxon_concept_source1`
226
    FOREIGN KEY (`according_to` )
227
    REFERENCES `source` (`id` )
228
    ON DELETE CASCADE
229
    ON UPDATE CASCADE,
230
  CONSTRAINT `fk_taxon_concept_taxon_concept1`
231
    FOREIGN KEY (`accepted_taxon_concept` )
232
    REFERENCES `taxon_concept` (`id` )
233
    ON DELETE CASCADE
234
    ON UPDATE CASCADE,
235
  CONSTRAINT `fk_taxon_concept_taxon_name1`
236
    FOREIGN KEY (`id` )
237
    REFERENCES `taxon_name` (`id` )
238
    ON DELETE CASCADE
239
    ON UPDATE CASCADE)
240
ENGINE = InnoDB
241
DEFAULT CHARACTER SET = utf8
242 8688 aaronmk
COLLATE = utf8_bin
243
COMMENT = 'A [[VegCore#Taxon|Taxon]] described by a specific [[VegCore#Reference|Reference]]';
244 8676 aaronmk
245
246
-- -----------------------------------------------------
247 8554 aaronmk
-- Table `parsed_taxon_assertion`
248
-- -----------------------------------------------------
249 8632 aaronmk
DROP TABLE IF EXISTS `parsed_taxon_assertion` ;
250
251 8554 aaronmk
CREATE  TABLE IF NOT EXISTS `parsed_taxon_assertion` (
252 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
253 8676 aaronmk
  `matched_taxon_concept` VARBINARY(767) NULL DEFAULT NULL ,
254 8572 aaronmk
  `match_score` FLOAT NULL ,
255 8574 aaronmk
  `match_info` SET('hstore') NULL ,
256 8554 aaronmk
  PRIMARY KEY (`id`) ,
257 8676 aaronmk
  INDEX `fk_parsed_taxon_assertion_taxon_name1_idx` (`matched_taxon_concept` ASC) ,
258 8554 aaronmk
  CONSTRAINT `fk_matched_taxon_qualified_taxon10`
259
    FOREIGN KEY (`id` )
260
    REFERENCES `taxon_assertion` (`id` )
261
    ON DELETE CASCADE
262
    ON UPDATE CASCADE,
263 8573 aaronmk
  CONSTRAINT `fk_parsed_taxon_assertion_taxon_name1`
264 8676 aaronmk
    FOREIGN KEY (`matched_taxon_concept` )
265
    REFERENCES `taxon_concept` (`id` )
266 8554 aaronmk
    ON DELETE CASCADE
267
    ON UPDATE CASCADE)
268
ENGINE = InnoDB
269 8621 aaronmk
DEFAULT CHARACTER SET = utf8
270
COLLATE = utf8_bin;
271 8554 aaronmk
272
273
-- -----------------------------------------------------
274 8552 aaronmk
-- Table `taxon_string`
275
-- -----------------------------------------------------
276 8632 aaronmk
DROP TABLE IF EXISTS `taxon_string` ;
277
278 8552 aaronmk
CREATE  TABLE IF NOT EXISTS `taxon_string` (
279 8620 aaronmk
  `string` VARBINARY(767) NOT NULL ,
280 8624 aaronmk
  `parsed_taxon_assertion` VARBINARY(767) NULL DEFAULT NULL ,
281 8554 aaronmk
  PRIMARY KEY (`string`) ,
282 8612 aaronmk
  INDEX `fk_taxon_string_parsed_taxon_assertion1_idx` (`parsed_taxon_assertion` ASC) ,
283 8554 aaronmk
  CONSTRAINT `fk_taxon_string_parsed_taxon_assertion1`
284
    FOREIGN KEY (`parsed_taxon_assertion` )
285
    REFERENCES `parsed_taxon_assertion` (`id` )
286
    ON DELETE CASCADE
287
    ON UPDATE CASCADE)
288 8552 aaronmk
ENGINE = InnoDB
289 8621 aaronmk
DEFAULT CHARACTER SET = utf8
290
COLLATE = utf8_bin;
291 8552 aaronmk
292
293
-- -----------------------------------------------------
294 8623 aaronmk
-- Table `taxon_name`
295 8521 aaronmk
-- -----------------------------------------------------
296 8632 aaronmk
DROP TABLE IF EXISTS `taxon_name` ;
297
298 8623 aaronmk
CREATE  TABLE IF NOT EXISTS `taxon_name` (
299 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
300 8623 aaronmk
  `unique_name` VARBINARY(767) NOT NULL ,
301 8624 aaronmk
  `formal_name` VARBINARY(767) NULL DEFAULT NULL ,
302
  `taxon_name` VARBINARY(767) NULL DEFAULT NULL ,
303
  `author` VARBINARY(767) NULL DEFAULT NULL ,
304
  `common_name` VARBINARY(767) NULL DEFAULT NULL ,
305
  `rank` VARBINARY(767) NULL DEFAULT NULL ,
306 8523 aaronmk
  PRIMARY KEY (`id`) ,
307 8623 aaronmk
  INDEX `fk_taxon_concept_taxon_string10_idx` (`unique_name` ASC) ,
308
  CONSTRAINT `fk_taxon_record10`
309 8523 aaronmk
    FOREIGN KEY (`id` )
310
    REFERENCES `record` (`id` )
311 8521 aaronmk
    ON DELETE CASCADE
312 8552 aaronmk
    ON UPDATE CASCADE,
313 8623 aaronmk
  CONSTRAINT `fk_taxon_concept_taxon_string10`
314
    FOREIGN KEY (`unique_name` )
315 8552 aaronmk
    REFERENCES `taxon_string` (`string` )
316
    ON DELETE CASCADE
317 8524 aaronmk
    ON UPDATE CASCADE)
318 8521 aaronmk
ENGINE = InnoDB
319 8621 aaronmk
DEFAULT CHARACTER SET = utf8
320
COLLATE = utf8_bin;
321 8521 aaronmk
322
323
-- -----------------------------------------------------
324 8522 aaronmk
-- Table `coordinates`
325 8336 aaronmk
-- -----------------------------------------------------
326 8632 aaronmk
DROP TABLE IF EXISTS `coordinates` ;
327
328 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `coordinates` (
329 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
330 8624 aaronmk
  `latitude_deg` VARBINARY(767) NULL DEFAULT NULL ,
331
  `longitude_deg` VARBINARY(767) NULL DEFAULT NULL ,
332 8567 aaronmk
  PRIMARY KEY (`id`) )
333 8336 aaronmk
ENGINE = InnoDB
334 8621 aaronmk
DEFAULT CHARACTER SET = utf8
335 8688 aaronmk
COLLATE = utf8_bin
336
COMMENT = 'A numerically-defined point';
337 8336 aaronmk
338
339
-- -----------------------------------------------------
340 8567 aaronmk
-- Table `place_path`
341
-- -----------------------------------------------------
342 8632 aaronmk
DROP TABLE IF EXISTS `place_path` ;
343
344 8567 aaronmk
CREATE  TABLE IF NOT EXISTS `place_path` (
345 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
346 8624 aaronmk
  `continent` VARBINARY(767) NULL DEFAULT NULL ,
347
  `country` VARBINARY(767) NULL DEFAULT NULL ,
348
  `state_province` VARBINARY(767) NULL DEFAULT NULL ,
349
  `county` VARBINARY(767) NULL DEFAULT NULL ,
350
  `municipality` VARBINARY(767) NULL DEFAULT NULL ,
351 8579 aaronmk
  `ranks` SET('hstore') NULL ,
352 8567 aaronmk
  PRIMARY KEY (`id`) )
353
ENGINE = InnoDB
354 8621 aaronmk
DEFAULT CHARACTER SET = utf8
355 8688 aaronmk
COLLATE = utf8_bin
356
COMMENT = 'A named region';
357 8567 aaronmk
358
359
-- -----------------------------------------------------
360 8563 aaronmk
-- Table `place`
361 8336 aaronmk
-- -----------------------------------------------------
362 8632 aaronmk
DROP TABLE IF EXISTS `place` ;
363
364 8563 aaronmk
CREATE  TABLE IF NOT EXISTS `place` (
365 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
366
  `parent` VARBINARY(767) NOT NULL ,
367 8624 aaronmk
  `coordinates` VARBINARY(767) NULL DEFAULT NULL ,
368
  `path` VARBINARY(767) NULL DEFAULT NULL ,
369
  `locality` VARBINARY(767) NULL DEFAULT NULL ,
370 8523 aaronmk
  PRIMARY KEY (`id`) ,
371 8612 aaronmk
  INDEX `fk_place_coordinates1_idx` (`coordinates` ASC) ,
372
  INDEX `fk_place1_idx` (`parent` ASC) ,
373
  INDEX `fk_place_place_path1_idx` (`path` ASC) ,
374 8563 aaronmk
  CONSTRAINT `fk_place_record1`
375 8523 aaronmk
    FOREIGN KEY (`id` )
376
    REFERENCES `record` (`id` )
377 8336 aaronmk
    ON DELETE CASCADE
378
    ON UPDATE CASCADE,
379 8563 aaronmk
  CONSTRAINT `fk_place_coordinates1`
380 8336 aaronmk
    FOREIGN KEY (`coordinates` )
381 8523 aaronmk
    REFERENCES `coordinates` (`id` )
382 8524 aaronmk
    ON DELETE CASCADE
383
    ON UPDATE CASCADE,
384 8563 aaronmk
  CONSTRAINT `fk_place1`
385 8523 aaronmk
    FOREIGN KEY (`parent` )
386 8563 aaronmk
    REFERENCES `place` (`id` )
387 8524 aaronmk
    ON DELETE CASCADE
388 8567 aaronmk
    ON UPDATE CASCADE,
389
  CONSTRAINT `fk_place_place_path1`
390
    FOREIGN KEY (`path` )
391
    REFERENCES `place_path` (`id` )
392
    ON DELETE CASCADE
393 8524 aaronmk
    ON UPDATE CASCADE)
394 8336 aaronmk
ENGINE = InnoDB
395 8621 aaronmk
DEFAULT CHARACTER SET = utf8
396 8688 aaronmk
COLLATE = utf8_bin
397
COMMENT = '\"A spatial region\" (\"DwC\":http://rs.tdwg.org/dwc/terms/#dcterms:Location) or point';
398 8336 aaronmk
399
400
-- -----------------------------------------------------
401 8522 aaronmk
-- Table `method`
402 8336 aaronmk
-- -----------------------------------------------------
403 8632 aaronmk
DROP TABLE IF EXISTS `method` ;
404
405 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `method` (
406 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
407 8668 aaronmk
  `parent` VARBINARY(767) NOT NULL ,
408 8579 aaronmk
  `info` SET('hstore') NULL ,
409 8523 aaronmk
  PRIMARY KEY (`id`) ,
410 8668 aaronmk
  INDEX `fk_method_method1_idx` (`parent` ASC) ,
411 8336 aaronmk
  CONSTRAINT `fk_method_record1`
412 8523 aaronmk
    FOREIGN KEY (`id` )
413
    REFERENCES `record` (`id` )
414 8336 aaronmk
    ON DELETE CASCADE
415 8668 aaronmk
    ON UPDATE CASCADE,
416
  CONSTRAINT `fk_method_method1`
417
    FOREIGN KEY (`parent` )
418
    REFERENCES `method` (`id` )
419
    ON DELETE CASCADE
420 8336 aaronmk
    ON UPDATE CASCADE)
421
ENGINE = InnoDB
422 8621 aaronmk
DEFAULT CHARACTER SET = utf8
423 8688 aaronmk
COLLATE = utf8_bin
424
COMMENT = '\"A specific method definition followed in the creation of the dataset. Each method links to a protocol and literature citation reference. A protocol may have many method or steps.\" (\"VegX\":http://wiki.tdwg.org/twiki/pub/Vegetation/WebHome/VegX_Schema_1.5.3_proposed.zip#/veg.xsd#/methods/method)';
425 8336 aaronmk
426
427
-- -----------------------------------------------------
428 8522 aaronmk
-- Table `event`
429 8336 aaronmk
-- -----------------------------------------------------
430 8632 aaronmk
DROP TABLE IF EXISTS `event` ;
431
432 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `event` (
433 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
434
  `parent` VARBINARY(767) NOT NULL ,
435 8624 aaronmk
  `name` VARBINARY(767) NULL DEFAULT NULL ,
436
  `date_range` VARBINARY(767) NULL DEFAULT NULL ,
437
  `place` VARBINARY(767) NULL DEFAULT NULL ,
438
  `method` VARBINARY(767) NULL DEFAULT NULL ,
439 8523 aaronmk
  PRIMARY KEY (`id`) ,
440 8612 aaronmk
  INDEX `fk_event_place1_idx` (`place` ASC) ,
441
  INDEX `fk_event1_idx` (`parent` ASC) ,
442
  INDEX `fk_event_method1_idx` (`method` ASC) ,
443 8336 aaronmk
  CONSTRAINT `fk_event_record1`
444 8523 aaronmk
    FOREIGN KEY (`id` )
445
    REFERENCES `record` (`id` )
446 8336 aaronmk
    ON DELETE CASCADE
447
    ON UPDATE CASCADE,
448 8563 aaronmk
  CONSTRAINT `fk_event_place1`
449
    FOREIGN KEY (`place` )
450
    REFERENCES `place` (`id` )
451 8524 aaronmk
    ON DELETE CASCADE
452
    ON UPDATE CASCADE,
453 8336 aaronmk
  CONSTRAINT `fk_event1`
454 8523 aaronmk
    FOREIGN KEY (`parent` )
455
    REFERENCES `event` (`id` )
456 8524 aaronmk
    ON DELETE CASCADE
457
    ON UPDATE CASCADE,
458 8336 aaronmk
  CONSTRAINT `fk_event_method1`
459
    FOREIGN KEY (`method` )
460 8523 aaronmk
    REFERENCES `method` (`id` )
461 8524 aaronmk
    ON DELETE CASCADE
462
    ON UPDATE CASCADE)
463 8336 aaronmk
ENGINE = InnoDB
464 8621 aaronmk
DEFAULT CHARACTER SET = utf8
465 8688 aaronmk
COLLATE = utf8_bin
466
COMMENT = '\"an action that occurs at a place and during a period of time\" (\"DwC\":http://rs.tdwg.org/dwc/terms/#Event)';
467 8336 aaronmk
468
469
-- -----------------------------------------------------
470 8623 aaronmk
-- Table `specimen`
471
-- -----------------------------------------------------
472 8632 aaronmk
DROP TABLE IF EXISTS `specimen` ;
473
474 8623 aaronmk
CREATE  TABLE IF NOT EXISTS `specimen` (
475
  `id` VARBINARY(767) NOT NULL ,
476 8674 aaronmk
  `individual` VARBINARY(767) NULL ,
477 8675 aaronmk
  `code_in_individual` VARBINARY(767) NULL ,
478 8671 aaronmk
  `collection_event` VARBINARY(767) NULL ,
479 8678 aaronmk
  `orig_collection` VARBINARY(767) NULL DEFAULT NULL ,
480 8681 aaronmk
  `barcode` VARBINARY(767) NULL DEFAULT NULL ,
481
  `accession_number` VARBINARY(767) NULL DEFAULT NULL ,
482 8678 aaronmk
  `current_collection` VARBINARY(767) NULL ,
483 8682 aaronmk
  `owner_collection` VARBINARY(767) NULL ,
484 8623 aaronmk
  PRIMARY KEY (`id`) ,
485 8678 aaronmk
  INDEX `fk_specimen_collection1_idx` (`orig_collection` ASC) ,
486 8671 aaronmk
  INDEX `fk_specimen_taxon_observation1_idx` (`collection_event` ASC) ,
487 8674 aaronmk
  INDEX `fk_specimen_individual1_idx` (`individual` ASC) ,
488 8678 aaronmk
  INDEX `fk_specimen_collection2_idx` (`current_collection` ASC) ,
489 8682 aaronmk
  INDEX `fk_specimen_organization3_idx` (`owner_collection` ASC) ,
490 8684 aaronmk
  UNIQUE INDEX `specimen_unique_in_individual` (`individual` ASC, `code_in_individual` ASC) ,
491
  UNIQUE INDEX `specimen_unique_by_collection_event` (`collection_event` ASC) ,
492
  UNIQUE INDEX `specimen_unique_in_collection_by_barcode` (`orig_collection` ASC, `barcode` ASC) ,
493
  UNIQUE INDEX `specimen_unique_in_collection_by_accession_number` (`orig_collection` ASC, `accession_number` ASC) ,
494 8623 aaronmk
  CONSTRAINT `fk_specimen_taxon_occurrence1`
495
    FOREIGN KEY (`id` )
496
    REFERENCES `taxon_occurrence` (`id` )
497
    ON DELETE CASCADE
498
    ON UPDATE CASCADE,
499
  CONSTRAINT `fk_specimen_collection1`
500 8678 aaronmk
    FOREIGN KEY (`orig_collection` )
501 8623 aaronmk
    REFERENCES `collection` (`id` )
502
    ON DELETE CASCADE
503
    ON UPDATE CASCADE,
504
  CONSTRAINT `fk_specimen_organization3`
505 8682 aaronmk
    FOREIGN KEY (`owner_collection` )
506
    REFERENCES `collection` (`id` )
507 8623 aaronmk
    ON DELETE CASCADE
508 8671 aaronmk
    ON UPDATE CASCADE,
509
  CONSTRAINT `fk_specimen_taxon_observation1`
510
    FOREIGN KEY (`collection_event` )
511
    REFERENCES `taxon_observation` (`id` )
512
    ON DELETE CASCADE
513 8674 aaronmk
    ON UPDATE CASCADE,
514
  CONSTRAINT `fk_specimen_individual1`
515
    FOREIGN KEY (`individual` )
516
    REFERENCES `individual` (`id` )
517
    ON DELETE CASCADE
518 8678 aaronmk
    ON UPDATE CASCADE,
519
  CONSTRAINT `fk_specimen_collection2`
520
    FOREIGN KEY (`current_collection` )
521
    REFERENCES `collection` (`id` )
522
    ON DELETE CASCADE
523 8623 aaronmk
    ON UPDATE CASCADE)
524
ENGINE = InnoDB
525
DEFAULT CHARACTER SET = utf8
526 8688 aaronmk
COLLATE = utf8_bin
527
COMMENT = 'A \"part of a plant\" (\"Wikipedia\":http://en.wikipedia.org/wiki/Specimen) which was collected from it';
528 8623 aaronmk
529
530
-- -----------------------------------------------------
531 8581 aaronmk
-- Table `taxon_observation`
532
-- -----------------------------------------------------
533 8632 aaronmk
DROP TABLE IF EXISTS `taxon_observation` ;
534
535 8581 aaronmk
CREATE  TABLE IF NOT EXISTS `taxon_observation` (
536 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
537
  `taxon_occurrence` VARBINARY(767) NOT NULL ,
538 8670 aaronmk
  `collector` VARBINARY(767) NULL ,
539
  `collector_number` VARBINARY(767) NULL ,
540 8624 aaronmk
  `voucher` VARBINARY(767) NULL DEFAULT NULL ,
541
  `growth_form` VARBINARY(767) NULL DEFAULT NULL ,
542 8581 aaronmk
  `cultivated` TINYINT(1) NULL ,
543
  `traits` SET('hstore') NULL ,
544
  PRIMARY KEY (`id`) ,
545 8612 aaronmk
  INDEX `fk_taxon_observation_taxon_occurrence2_idx` (`taxon_occurrence` ASC) ,
546
  INDEX `fk_taxon_observation_specimen1_idx` (`voucher` ASC) ,
547 8670 aaronmk
  INDEX `fk_taxon_observation_party1_idx` (`collector` ASC) ,
548 8581 aaronmk
  CONSTRAINT `fk_taxon_observation_event1`
549
    FOREIGN KEY (`id` )
550
    REFERENCES `event` (`id` )
551
    ON DELETE CASCADE
552
    ON UPDATE CASCADE,
553
  CONSTRAINT `fk_taxon_observation_taxon_occurrence2`
554
    FOREIGN KEY (`taxon_occurrence` )
555
    REFERENCES `taxon_occurrence` (`id` )
556
    ON DELETE CASCADE
557
    ON UPDATE CASCADE,
558
  CONSTRAINT `fk_taxon_observation_specimen1`
559
    FOREIGN KEY (`voucher` )
560
    REFERENCES `specimen` (`id` )
561
    ON DELETE CASCADE
562 8670 aaronmk
    ON UPDATE CASCADE,
563
  CONSTRAINT `fk_taxon_observation_party1`
564
    FOREIGN KEY (`collector` )
565
    REFERENCES `party` (`id` )
566
    ON DELETE CASCADE
567 8581 aaronmk
    ON UPDATE CASCADE)
568
ENGINE = InnoDB
569 8621 aaronmk
DEFAULT CHARACTER SET = utf8
570
COLLATE = utf8_bin;
571 8581 aaronmk
572
573
-- -----------------------------------------------------
574
-- Table `taxon_determination`
575
-- -----------------------------------------------------
576 8632 aaronmk
DROP TABLE IF EXISTS `taxon_determination` ;
577
578 8581 aaronmk
CREATE  TABLE IF NOT EXISTS `taxon_determination` (
579 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
580
  `taxon_assertion` VARBINARY(767) NOT NULL ,
581 8624 aaronmk
  `identified_by` VARBINARY(767) NULL DEFAULT NULL ,
582 8581 aaronmk
  `fit_info` SET('hstore') NULL ,
583 8612 aaronmk
  INDEX `fk_taxon_occurrence_has_qualified_taxon1_idx` (`taxon_assertion` ASC) ,
584 8581 aaronmk
  PRIMARY KEY (`id`) ,
585 8612 aaronmk
  INDEX `fk_taxon_determination_party1_idx` (`identified_by` ASC) ,
586 8581 aaronmk
  UNIQUE INDEX `taxon_determination_unique` (`taxon_assertion` ASC, `identified_by` ASC) ,
587
  CONSTRAINT `fk_taxon_occurrence_has_qualified_taxon1`
588
    FOREIGN KEY (`taxon_assertion` )
589
    REFERENCES `taxon_assertion` (`id` )
590
    ON DELETE CASCADE
591
    ON UPDATE CASCADE,
592
  CONSTRAINT `fk_taxon_determination_record1`
593 8613 aaronmk
    FOREIGN KEY (`id` )
594
    REFERENCES `taxon_observation` (`id` )
595 8581 aaronmk
    ON DELETE CASCADE
596
    ON UPDATE CASCADE,
597
  CONSTRAINT `fk_taxon_determination_party1`
598
    FOREIGN KEY (`identified_by` )
599
    REFERENCES `party` (`id` )
600
    ON DELETE CASCADE
601
    ON UPDATE CASCADE)
602
ENGINE = InnoDB
603 8621 aaronmk
DEFAULT CHARACTER SET = utf8
604 8688 aaronmk
COLLATE = utf8_bin
605
COMMENT = 'An assertion that a [[VegCore#TaxonOccurrence|TaxonOccurrence]] is a particular [[VegCore#Taxon|Taxon]]';
606 8581 aaronmk
607
608
-- -----------------------------------------------------
609 8522 aaronmk
-- Table `taxon_occurrence`
610 8336 aaronmk
-- -----------------------------------------------------
611 8632 aaronmk
DROP TABLE IF EXISTS `taxon_occurrence` ;
612
613 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `taxon_occurrence` (
614 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
615 8624 aaronmk
  `current_determination` VARBINARY(767) NULL DEFAULT NULL ,
616
  `original_determination` VARBINARY(767) NULL DEFAULT NULL ,
617 8523 aaronmk
  PRIMARY KEY (`id`) ,
618 8612 aaronmk
  INDEX `fk_taxon_occurrence_taxon_determination1_idx` (`original_determination` ASC) ,
619
  INDEX `fk_taxon_occurrence_taxon_determination2_idx` (`current_determination` ASC) ,
620 8521 aaronmk
  CONSTRAINT `fk_taxon_occurrence_taxon_determination1`
621 8526 aaronmk
    FOREIGN KEY (`original_determination` )
622 8523 aaronmk
    REFERENCES `taxon_determination` (`id` )
623 8524 aaronmk
    ON DELETE CASCADE
624
    ON UPDATE CASCADE,
625 8521 aaronmk
  CONSTRAINT `fk_taxon_occurrence_taxon_determination2`
626 8526 aaronmk
    FOREIGN KEY (`current_determination` )
627 8523 aaronmk
    REFERENCES `taxon_determination` (`id` )
628 8524 aaronmk
    ON DELETE CASCADE
629
    ON UPDATE CASCADE,
630 8521 aaronmk
  CONSTRAINT `fk_taxon_occurrence_event1`
631 8613 aaronmk
    FOREIGN KEY (`id` )
632
    REFERENCES `record` (`id` )
633 8524 aaronmk
    ON DELETE CASCADE
634
    ON UPDATE CASCADE)
635 8336 aaronmk
ENGINE = InnoDB
636 8621 aaronmk
DEFAULT CHARACTER SET = utf8
637 8688 aaronmk
COLLATE = utf8_bin
638
COMMENT = 'Any entity on which [[VegCore#TaxonDetermination|TaxonDetermination]]s can be made';
639 8336 aaronmk
640
641
-- -----------------------------------------------------
642 8522 aaronmk
-- Table `individual`
643 8336 aaronmk
-- -----------------------------------------------------
644 8632 aaronmk
DROP TABLE IF EXISTS `individual` ;
645
646 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `individual` (
647 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
648 8624 aaronmk
  `tag` VARBINARY(767) NULL DEFAULT NULL ,
649 8523 aaronmk
  PRIMARY KEY (`id`) ,
650 8336 aaronmk
  CONSTRAINT `fk_individual_record1`
651 8613 aaronmk
    FOREIGN KEY (`id` )
652
    REFERENCES `taxon_occurrence` (`id` )
653 8336 aaronmk
    ON DELETE CASCADE
654
    ON UPDATE CASCADE)
655
ENGINE = InnoDB
656 8621 aaronmk
DEFAULT CHARACTER SET = utf8
657 8688 aaronmk
COLLATE = utf8_bin
658
COMMENT = 'A distinct biological organism';
659 8336 aaronmk
660
661
-- -----------------------------------------------------
662 8522 aaronmk
-- Table `aggregate_observation`
663 8336 aaronmk
-- -----------------------------------------------------
664 8632 aaronmk
DROP TABLE IF EXISTS `aggregate_observation` ;
665
666 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `aggregate_observation` (
667 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
668 8676 aaronmk
  `taxon_concept` VARBINARY(767) NOT NULL ,
669 8686 aaronmk
  `traits` SET('hstore') NULL ,
670 8523 aaronmk
  PRIMARY KEY (`id`) ,
671 8676 aaronmk
  INDEX `fk_aggregate_observation_taxon_name1_idx` (`taxon_concept` ASC) ,
672 8336 aaronmk
  CONSTRAINT `fk_aggregate_observation_taxon_occurrence1`
673 8613 aaronmk
    FOREIGN KEY (`id` )
674
    REFERENCES `taxon_observation` (`id` )
675 8524 aaronmk
    ON DELETE CASCADE
676 8590 aaronmk
    ON UPDATE CASCADE,
677
  CONSTRAINT `fk_aggregate_observation_taxon_name1`
678 8676 aaronmk
    FOREIGN KEY (`taxon_concept` )
679
    REFERENCES `taxon_concept` (`id` )
680 8590 aaronmk
    ON DELETE CASCADE
681 8524 aaronmk
    ON UPDATE CASCADE)
682 8336 aaronmk
ENGINE = InnoDB
683 8621 aaronmk
DEFAULT CHARACTER SET = utf8
684 8688 aaronmk
COLLATE = utf8_bin
685
COMMENT = '\"An observation applying to all occurrences of an organism based on an aggregation factor\" (\"VegX\":http://wiki.tdwg.org/twiki/pub/Vegetation/WebHome/VegX_Schema_1.5.3_proposed.zip#/veg.xsd#/aggregateOrganismObservations/aggregateOrganismObservation)';
686 8336 aaronmk
687
688
-- -----------------------------------------------------
689 8577 aaronmk
-- Table `taxon_presence`
690 8336 aaronmk
-- -----------------------------------------------------
691 8632 aaronmk
DROP TABLE IF EXISTS `taxon_presence` ;
692
693 8577 aaronmk
CREATE  TABLE IF NOT EXISTS `taxon_presence` (
694 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
695 8676 aaronmk
  `taxon_concept` VARBINARY(767) NOT NULL ,
696 8686 aaronmk
  `traits` SET('hstore') NULL ,
697 8523 aaronmk
  PRIMARY KEY (`id`) ,
698 8676 aaronmk
  INDEX `fk_taxon_presence_taxon_name1_idx` (`taxon_concept` ASC) ,
699 8336 aaronmk
  CONSTRAINT `fk_taxon_observation_taxon_occurrence1`
700 8613 aaronmk
    FOREIGN KEY (`id` )
701
    REFERENCES `taxon_observation` (`id` )
702 8524 aaronmk
    ON DELETE CASCADE
703 8590 aaronmk
    ON UPDATE CASCADE,
704
  CONSTRAINT `fk_taxon_presence_taxon_name1`
705 8676 aaronmk
    FOREIGN KEY (`taxon_concept` )
706 8573 aaronmk
    REFERENCES `taxon_concept` (`id` )
707
    ON DELETE CASCADE
708
    ON UPDATE CASCADE)
709
ENGINE = InnoDB
710 8621 aaronmk
DEFAULT CHARACTER SET = utf8
711 8688 aaronmk
COLLATE = utf8_bin
712
COMMENT = 'An observation of just a [[VegCore#Taxon|Taxon]]\'s _presence_';
713 8573 aaronmk
714
715
-- -----------------------------------------------------
716 8522 aaronmk
-- Table `community`
717 8336 aaronmk
-- -----------------------------------------------------
718 8632 aaronmk
DROP TABLE IF EXISTS `community` ;
719
720 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `community` (
721 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
722
  `name` VARBINARY(767) NOT NULL ,
723 8579 aaronmk
  `info` SET('hstore') NULL ,
724 8523 aaronmk
  PRIMARY KEY (`id`) ,
725 8336 aaronmk
  CONSTRAINT `fk_community_record1`
726 8523 aaronmk
    FOREIGN KEY (`id` )
727
    REFERENCES `record` (`id` )
728 8336 aaronmk
    ON DELETE CASCADE
729
    ON UPDATE CASCADE)
730
ENGINE = InnoDB
731 8621 aaronmk
DEFAULT CHARACTER SET = utf8
732 8688 aaronmk
COLLATE = utf8_bin
733
COMMENT = '\"A community type is an abstract grouping of organisms that tend to co-occur on the landscape due to shared ecological requirements or preferences. May be designated by syntaxon or physiognomic types.\" ([[VegCore#VegX|VegX]])';
734 8336 aaronmk
735
736
-- -----------------------------------------------------
737 8522 aaronmk
-- Table `geological_context`
738 8336 aaronmk
-- -----------------------------------------------------
739 8632 aaronmk
DROP TABLE IF EXISTS `geological_context` ;
740
741 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `geological_context` (
742 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
743
  `name` VARBINARY(767) NOT NULL ,
744 8579 aaronmk
  `info` SET('hstore') NULL ,
745 8523 aaronmk
  PRIMARY KEY (`id`) ,
746 8336 aaronmk
  CONSTRAINT `fk_geological_context_record1`
747 8523 aaronmk
    FOREIGN KEY (`id` )
748
    REFERENCES `record` (`id` )
749 8336 aaronmk
    ON DELETE CASCADE
750
    ON UPDATE CASCADE)
751
ENGINE = InnoDB
752 8621 aaronmk
DEFAULT CHARACTER SET = utf8
753 8688 aaronmk
COLLATE = utf8_bin
754
COMMENT = '\"information pertaining to a location within a geological context, such as stratigraphy\" (\"DwC\":http://rs.tdwg.org/dwc/terms/#GeologicalContext)';
755 8336 aaronmk
756
757
-- -----------------------------------------------------
758 8563 aaronmk
-- Table `place_observation`
759 8336 aaronmk
-- -----------------------------------------------------
760 8632 aaronmk
DROP TABLE IF EXISTS `place_observation` ;
761
762 8563 aaronmk
CREATE  TABLE IF NOT EXISTS `place_observation` (
763 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
764
  `place` VARBINARY(767) NOT NULL ,
765 8579 aaronmk
  `elevation_m` DOUBLE NULL ,
766
  `slope_incline_deg` DOUBLE NULL ,
767
  `slope_direction_deg_N` DOUBLE NULL ,
768 8624 aaronmk
  `geological_context` VARBINARY(767) NULL DEFAULT NULL ,
769
  `community` VARBINARY(767) NULL DEFAULT NULL ,
770 8579 aaronmk
  `observations` SET('hstore') NULL ,
771 8612 aaronmk
  INDEX `fk_place_observation_place1_idx` (`place` ASC) ,
772
  INDEX `fk_place_observation_geological_context1_idx` (`geological_context` ASC) ,
773
  INDEX `fk_place_observation_community1_idx` (`community` ASC) ,
774
  INDEX `fk_place_observation_event1_idx` (`id` ASC) ,
775 8523 aaronmk
  PRIMARY KEY (`id`) ,
776 8563 aaronmk
  CONSTRAINT `fk_place_observation_place1`
777
    FOREIGN KEY (`place` )
778
    REFERENCES `place` (`id` )
779 8524 aaronmk
    ON DELETE CASCADE
780
    ON UPDATE CASCADE,
781 8563 aaronmk
  CONSTRAINT `fk_place_observation_geological_context1`
782 8336 aaronmk
    FOREIGN KEY (`geological_context` )
783 8523 aaronmk
    REFERENCES `geological_context` (`id` )
784 8524 aaronmk
    ON DELETE CASCADE
785
    ON UPDATE CASCADE,
786 8563 aaronmk
  CONSTRAINT `fk_place_observation_community1`
787 8336 aaronmk
    FOREIGN KEY (`community` )
788 8523 aaronmk
    REFERENCES `community` (`id` )
789 8524 aaronmk
    ON DELETE CASCADE
790
    ON UPDATE CASCADE,
791 8563 aaronmk
  CONSTRAINT `fk_place_observation_event1`
792 8523 aaronmk
    FOREIGN KEY (`id` )
793
    REFERENCES `event` (`id` )
794 8524 aaronmk
    ON DELETE CASCADE
795
    ON UPDATE CASCADE)
796 8336 aaronmk
ENGINE = InnoDB
797 8621 aaronmk
DEFAULT CHARACTER SET = utf8
798 8688 aaronmk
COLLATE = utf8_bin
799
COMMENT = 'A sampling of a [[VegCore#Location|Location]]';
800 8336 aaronmk
801
802
-- -----------------------------------------------------
803 8522 aaronmk
-- Table `soil_observation`
804 8336 aaronmk
-- -----------------------------------------------------
805 8632 aaronmk
DROP TABLE IF EXISTS `soil_observation` ;
806
807 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `soil_observation` (
808 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
809 8579 aaronmk
  `observations` SET('hstore') NULL ,
810 8523 aaronmk
  PRIMARY KEY (`id`) ,
811 8563 aaronmk
  CONSTRAINT `fk_soil_observation_place_observation1`
812 8523 aaronmk
    FOREIGN KEY (`id` )
813 8563 aaronmk
    REFERENCES `place_observation` (`id` )
814 8524 aaronmk
    ON DELETE CASCADE
815
    ON UPDATE CASCADE)
816 8336 aaronmk
ENGINE = InnoDB
817 8621 aaronmk
DEFAULT CHARACTER SET = utf8
818 8688 aaronmk
COLLATE = utf8_bin
819
COMMENT = 'A sampling of a [[VegCore#Location|Location]]\'s soil';
820 8336 aaronmk
821
822
-- -----------------------------------------------------
823 8532 aaronmk
-- Table `plot`
824 8336 aaronmk
-- -----------------------------------------------------
825 8632 aaronmk
DROP TABLE IF EXISTS `plot` ;
826
827 8532 aaronmk
CREATE  TABLE IF NOT EXISTS `plot` (
828 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
829 8624 aaronmk
  `name` VARBINARY(767) NULL DEFAULT NULL ,
830 8579 aaronmk
  `area_m2` DOUBLE NULL ,
831 8624 aaronmk
  `bounding_box` VARBINARY(767) NULL DEFAULT NULL ,
832 8523 aaronmk
  PRIMARY KEY (`id`) ,
833 8563 aaronmk
  CONSTRAINT `fk_subplot_place1`
834 8523 aaronmk
    FOREIGN KEY (`id` )
835 8563 aaronmk
    REFERENCES `place` (`id` )
836 8524 aaronmk
    ON DELETE CASCADE
837
    ON UPDATE CASCADE)
838 8336 aaronmk
ENGINE = InnoDB
839 8621 aaronmk
DEFAULT CHARACTER SET = utf8
840
COLLATE = utf8_bin;
841 8336 aaronmk
842
843
-- -----------------------------------------------------
844 8532 aaronmk
-- Table `subplot`
845
-- -----------------------------------------------------
846 8632 aaronmk
DROP TABLE IF EXISTS `subplot` ;
847
848 8532 aaronmk
CREATE  TABLE IF NOT EXISTS `subplot` (
849 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
850 8579 aaronmk
  `x_m` DOUBLE NULL ,
851
  `y_m` DOUBLE NULL ,
852 8532 aaronmk
  PRIMARY KEY (`id`) ,
853
  CONSTRAINT `fk_subplot_plot1`
854
    FOREIGN KEY (`id` )
855
    REFERENCES `plot` (`id` )
856
    ON DELETE CASCADE
857
    ON UPDATE CASCADE)
858
ENGINE = InnoDB
859 8621 aaronmk
DEFAULT CHARACTER SET = utf8
860 8688 aaronmk
COLLATE = utf8_bin
861
COMMENT = '\"subplot, line, or any other subsample  or subdivision of plot\" (\"SALVIAS\":http://salvias.net/Documents/salvias_data_dictionary.html#Plot_data/subplot)';
862 8532 aaronmk
863
864
-- -----------------------------------------------------
865 8567 aaronmk
-- Table `validatable_place`
866 8565 aaronmk
-- -----------------------------------------------------
867 8632 aaronmk
DROP TABLE IF EXISTS `validatable_place` ;
868
869 8567 aaronmk
CREATE  TABLE IF NOT EXISTS `validatable_place` (
870 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
871
  `coordinates` VARBINARY(767) NOT NULL ,
872
  `path` VARBINARY(767) NOT NULL ,
873 8565 aaronmk
  PRIMARY KEY (`id`) ,
874 8612 aaronmk
  INDEX `fk_geovalidation_place_path1_idx` (`path` ASC) ,
875
  INDEX `fk_geovalidation_coordinates1_idx` (`coordinates` ASC) ,
876 8568 aaronmk
  UNIQUE INDEX `validatable_place_unique` (`path` ASC, `coordinates` ASC) ,
877 8567 aaronmk
  CONSTRAINT `fk_geovalidation_place_path1`
878
    FOREIGN KEY (`path` )
879
    REFERENCES `place_path` (`id` )
880 8565 aaronmk
    ON DELETE CASCADE
881
    ON UPDATE CASCADE,
882 8567 aaronmk
  CONSTRAINT `fk_geovalidation_coordinates1`
883
    FOREIGN KEY (`coordinates` )
884
    REFERENCES `coordinates` (`id` )
885 8565 aaronmk
    ON DELETE CASCADE
886
    ON UPDATE CASCADE)
887
ENGINE = InnoDB
888 8621 aaronmk
DEFAULT CHARACTER SET = utf8
889
COLLATE = utf8_bin;
890 8565 aaronmk
891
892
-- -----------------------------------------------------
893 8623 aaronmk
-- Table `individual_observation`
894
-- -----------------------------------------------------
895 8632 aaronmk
DROP TABLE IF EXISTS `individual_observation` ;
896
897 8623 aaronmk
CREATE  TABLE IF NOT EXISTS `individual_observation` (
898
  `id` VARBINARY(767) NOT NULL ,
899 8673 aaronmk
  `individual` VARBINARY(767) NULL ,
900 8672 aaronmk
  `code` VARBINARY(767) NULL ,
901 8623 aaronmk
  `traits` SET('hstore') NULL ,
902
  PRIMARY KEY (`id`) ,
903
  INDEX `fk_individual_observation_individual1_idx` (`individual` ASC) ,
904
  CONSTRAINT `fk_individual_observation_taxon_occurrence1`
905
    FOREIGN KEY (`id` )
906
    REFERENCES `taxon_observation` (`id` )
907
    ON DELETE CASCADE
908
    ON UPDATE CASCADE,
909
  CONSTRAINT `fk_individual_observation_individual1`
910
    FOREIGN KEY (`individual` )
911
    REFERENCES `individual` (`id` )
912
    ON DELETE CASCADE
913
    ON UPDATE CASCADE)
914
ENGINE = InnoDB
915
DEFAULT CHARACTER SET = utf8
916 8688 aaronmk
COLLATE = utf8_bin
917
COMMENT = 'An observation of an [[VegCore#Individual|Individual]]';
918 8623 aaronmk
919
920
-- -----------------------------------------------------
921
-- Table `stem`
922
-- -----------------------------------------------------
923 8632 aaronmk
DROP TABLE IF EXISTS `stem` ;
924
925 8623 aaronmk
CREATE  TABLE IF NOT EXISTS `stem` (
926
  `id` VARBINARY(767) NOT NULL ,
927
  `individual` VARBINARY(767) NOT NULL ,
928
  PRIMARY KEY (`id`) ,
929
  INDEX `fk_stem_individual1_idx` (`individual` ASC) ,
930
  CONSTRAINT `fk_stem_individual1`
931
    FOREIGN KEY (`individual` )
932
    REFERENCES `individual` (`id` )
933
    ON DELETE CASCADE
934
    ON UPDATE CASCADE,
935
  CONSTRAINT `fk_stem_individual2`
936
    FOREIGN KEY (`id` )
937
    REFERENCES `individual` (`id` )
938
    ON DELETE CASCADE
939
    ON UPDATE CASCADE)
940
ENGINE = InnoDB
941
DEFAULT CHARACTER SET = utf8
942 8688 aaronmk
COLLATE = utf8_bin
943
COMMENT = 'An \"individual tree stem\" (\"VegBank\":http://vegbank.org/vegbank/views/dba_tabledescription_detail.jsp?view=detail&wparam=stemlocation&entity=dba_tabledescription&where=where_tablename)';
944 8623 aaronmk
945
946
-- -----------------------------------------------------
947
-- Table `stem_observation`
948
-- -----------------------------------------------------
949 8632 aaronmk
DROP TABLE IF EXISTS `stem_observation` ;
950
951 8623 aaronmk
CREATE  TABLE IF NOT EXISTS `stem_observation` (
952
  `id` VARBINARY(767) NOT NULL ,
953
  `individual_observation` VARBINARY(767) NOT NULL ,
954 8673 aaronmk
  `stem` VARBINARY(767) NULL ,
955 8623 aaronmk
  `traits` SET('hstore') NULL ,
956
  PRIMARY KEY (`id`) ,
957
  INDEX `fk_stem_observation_individual_observation1_idx` (`individual_observation` ASC) ,
958
  INDEX `fk_stem_observation_stem1_idx` (`stem` ASC) ,
959
  UNIQUE INDEX `stem_observation_unique` (`individual_observation` ASC, `stem` ASC) ,
960
  CONSTRAINT `fk_stem_observation_individual_observation1`
961
    FOREIGN KEY (`individual_observation` )
962
    REFERENCES `individual_observation` (`id` )
963
    ON DELETE CASCADE
964
    ON UPDATE CASCADE,
965
  CONSTRAINT `fk_stem_observation_stem1`
966
    FOREIGN KEY (`stem` )
967
    REFERENCES `stem` (`id` )
968
    ON DELETE CASCADE
969
    ON UPDATE CASCADE,
970
  CONSTRAINT `fk_stem_observation_individual_observation2`
971
    FOREIGN KEY (`id` )
972
    REFERENCES `individual_observation` (`id` )
973
    ON DELETE CASCADE
974
    ON UPDATE CASCADE)
975
ENGINE = InnoDB
976
DEFAULT CHARACTER SET = utf8
977 8688 aaronmk
COLLATE = utf8_bin
978
COMMENT = 'An observation of a [[VegCore#Stem|Stem]]';
979 8623 aaronmk
980
981
-- -----------------------------------------------------
982 8522 aaronmk
-- Table `project`
983 8336 aaronmk
-- -----------------------------------------------------
984 8632 aaronmk
DROP TABLE IF EXISTS `project` ;
985
986 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `project` (
987 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
988
  `name` VARBINARY(767) NOT NULL ,
989 8579 aaronmk
  `info` SET('hstore') NULL ,
990 8523 aaronmk
  PRIMARY KEY (`id`) ,
991 8336 aaronmk
  CONSTRAINT `fk_project_event1`
992 8523 aaronmk
    FOREIGN KEY (`id` )
993
    REFERENCES `event` (`id` )
994 8524 aaronmk
    ON DELETE CASCADE
995
    ON UPDATE CASCADE)
996 8336 aaronmk
ENGINE = InnoDB
997 8621 aaronmk
DEFAULT CHARACTER SET = utf8
998 8688 aaronmk
COLLATE = utf8_bin
999
COMMENT = 'A \"project established to collect vegetation plot data. Each plot originates as part of a project.\" (\"VegBank\":http://vegbank.org/vegbank/views/dba_tabledescription_detail.jsp?view=detail&wparam=project&entity=dba_tabledescription&where=where_tablename)';
1000 8336 aaronmk
1001
1002
-- -----------------------------------------------------
1003 8522 aaronmk
-- Table `referenced_class`
1004 8521 aaronmk
-- -----------------------------------------------------
1005 8632 aaronmk
DROP TABLE IF EXISTS `referenced_class` ;
1006
1007 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `referenced_class` (
1008 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
1009 8523 aaronmk
  PRIMARY KEY (`id`) ,
1010 8521 aaronmk
  CONSTRAINT `fk_example_record10`
1011 8523 aaronmk
    FOREIGN KEY (`id` )
1012
    REFERENCES `record` (`id` )
1013 8524 aaronmk
    ON DELETE CASCADE
1014
    ON UPDATE CASCADE)
1015 8523 aaronmk
ENGINE = InnoDB
1016 8621 aaronmk
DEFAULT CHARACTER SET = utf8
1017
COLLATE = utf8_bin;
1018 8336 aaronmk
1019 8521 aaronmk
1020
-- -----------------------------------------------------
1021 8522 aaronmk
-- Table `base_class`
1022 8521 aaronmk
-- -----------------------------------------------------
1023 8632 aaronmk
DROP TABLE IF EXISTS `base_class` ;
1024
1025 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `base_class` (
1026 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
1027
  `referenced_class` VARBINARY(767) NOT NULL ,
1028 8523 aaronmk
  PRIMARY KEY (`id`) ,
1029 8612 aaronmk
  INDEX `fk_base_class_referenced_class1_idx` (`referenced_class` ASC) ,
1030 8521 aaronmk
  CONSTRAINT `fk_example_record1`
1031 8523 aaronmk
    FOREIGN KEY (`id` )
1032
    REFERENCES `record` (`id` )
1033 8524 aaronmk
    ON DELETE CASCADE
1034
    ON UPDATE CASCADE,
1035 8521 aaronmk
  CONSTRAINT `fk_base_class_referenced_class1`
1036
    FOREIGN KEY (`referenced_class` )
1037 8523 aaronmk
    REFERENCES `referenced_class` (`id` )
1038 8524 aaronmk
    ON DELETE CASCADE
1039
    ON UPDATE CASCADE)
1040 8523 aaronmk
ENGINE = InnoDB
1041 8621 aaronmk
DEFAULT CHARACTER SET = utf8
1042
COLLATE = utf8_bin;
1043 8521 aaronmk
1044
1045
-- -----------------------------------------------------
1046 8522 aaronmk
-- Table `derived_class`
1047 8521 aaronmk
-- -----------------------------------------------------
1048 8632 aaronmk
DROP TABLE IF EXISTS `derived_class` ;
1049
1050 8522 aaronmk
CREATE  TABLE IF NOT EXISTS `derived_class` (
1051 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
1052 8523 aaronmk
  PRIMARY KEY (`id`) ,
1053 8521 aaronmk
  CONSTRAINT `fk_derived_class_base_class1`
1054 8523 aaronmk
    FOREIGN KEY (`id` )
1055
    REFERENCES `base_class` (`id` )
1056 8524 aaronmk
    ON DELETE CASCADE
1057
    ON UPDATE CASCADE)
1058 8523 aaronmk
ENGINE = InnoDB
1059 8621 aaronmk
DEFAULT CHARACTER SET = utf8
1060
COLLATE = utf8_bin;
1061 8521 aaronmk
1062
1063 8533 aaronmk
-- -----------------------------------------------------
1064
-- Table `stratum`
1065
-- -----------------------------------------------------
1066 8632 aaronmk
DROP TABLE IF EXISTS `stratum` ;
1067
1068 8533 aaronmk
CREATE  TABLE IF NOT EXISTS `stratum` (
1069 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
1070
  `name` VARBINARY(767) NOT NULL ,
1071 8579 aaronmk
  `info` SET('hstore') NULL ,
1072 8533 aaronmk
  PRIMARY KEY (`id`) ,
1073 8564 aaronmk
  CONSTRAINT `fk_place_path_record10`
1074 8533 aaronmk
    FOREIGN KEY (`id` )
1075 8634 aaronmk
    REFERENCES `method` (`id` )
1076 8533 aaronmk
    ON DELETE CASCADE
1077
    ON UPDATE CASCADE)
1078
ENGINE = InnoDB
1079 8621 aaronmk
DEFAULT CHARACTER SET = utf8
1080
COLLATE = utf8_bin;
1081 8521 aaronmk
1082 8533 aaronmk
1083
-- -----------------------------------------------------
1084 8567 aaronmk
-- Table `geovalidation`
1085
-- -----------------------------------------------------
1086 8632 aaronmk
DROP TABLE IF EXISTS `geovalidation` ;
1087
1088 8567 aaronmk
CREATE  TABLE IF NOT EXISTS `geovalidation` (
1089 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
1090 8579 aaronmk
  `geovalid` TINYINT(1) NOT NULL ,
1091
  `lat_long_domain_valid` TINYINT(1) NOT NULL ,
1092 8600 aaronmk
  `lat_long_in_ranks` SET('hstore') NULL ,
1093 8567 aaronmk
  PRIMARY KEY (`id`) ,
1094
  CONSTRAINT `fk_geovalidation_validatable_place1`
1095
    FOREIGN KEY (`id` )
1096
    REFERENCES `validatable_place` (`id` )
1097
    ON DELETE CASCADE
1098
    ON UPDATE CASCADE)
1099
ENGINE = InnoDB
1100 8621 aaronmk
DEFAULT CHARACTER SET = utf8
1101 8688 aaronmk
COLLATE = utf8_bin
1102
COMMENT = 'The accuracy of the [[VegCore#Coordinates|Coordinates]], taking into account the [[VegCore#Placename|Placename]]';
1103 8561 aaronmk
1104 8567 aaronmk
1105 8573 aaronmk
-- -----------------------------------------------------
1106
-- Table `taxon_path`
1107
-- -----------------------------------------------------
1108 8632 aaronmk
DROP TABLE IF EXISTS `taxon_path` ;
1109
1110 8573 aaronmk
CREATE  TABLE IF NOT EXISTS `taxon_path` (
1111 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
1112 8624 aaronmk
  `family` VARBINARY(767) NULL DEFAULT NULL ,
1113
  `genus` VARBINARY(767) NULL DEFAULT NULL ,
1114
  `specific_epithet` VARBINARY(767) NULL DEFAULT NULL ,
1115 8573 aaronmk
  `ranks` SET('hstore') NULL ,
1116
  PRIMARY KEY (`id`) ,
1117
  CONSTRAINT `fk_taxon_path_taxon_name1`
1118
    FOREIGN KEY (`id` )
1119
    REFERENCES `taxon_name` (`id` )
1120
    ON DELETE CASCADE
1121
    ON UPDATE CASCADE)
1122
ENGINE = InnoDB
1123 8621 aaronmk
DEFAULT CHARACTER SET = utf8
1124 8688 aaronmk
COLLATE = utf8_bin
1125
COMMENT = '\"a group of one (or more) populations of organism(s), which a taxonomist adjudges to be a unit\" (\"Wikipedia\":http://en.wikipedia.org/wiki/Taxon)';
1126 8567 aaronmk
1127 8573 aaronmk
1128 8581 aaronmk
-- -----------------------------------------------------
1129
-- Table `specimen_observation`
1130
-- -----------------------------------------------------
1131 8632 aaronmk
DROP TABLE IF EXISTS `specimen_observation` ;
1132
1133 8581 aaronmk
CREATE  TABLE IF NOT EXISTS `specimen_observation` (
1134 8620 aaronmk
  `id` VARBINARY(767) NOT NULL ,
1135
  `specimen` VARBINARY(767) NOT NULL ,
1136 8686 aaronmk
  `traits` SET('hstore') NULL ,
1137 8581 aaronmk
  PRIMARY KEY (`id`) ,
1138 8612 aaronmk
  INDEX `fk_specimen_observation_specimen1_idx` (`specimen` ASC) ,
1139 8581 aaronmk
  CONSTRAINT `fk_specimen_taxon_occurrence10`
1140 8613 aaronmk
    FOREIGN KEY (`id` )
1141
    REFERENCES `taxon_observation` (`id` )
1142 8581 aaronmk
    ON DELETE CASCADE
1143
    ON UPDATE CASCADE,
1144
  CONSTRAINT `fk_specimen_observation_specimen1`
1145
    FOREIGN KEY (`specimen` )
1146
    REFERENCES `specimen` (`id` )
1147
    ON DELETE CASCADE
1148
    ON UPDATE CASCADE)
1149
ENGINE = InnoDB
1150 8621 aaronmk
DEFAULT CHARACTER SET = utf8
1151
COLLATE = utf8_bin;
1152 8573 aaronmk
1153 8581 aaronmk
1154 8593 aaronmk
-- -----------------------------------------------------
1155 8598 aaronmk
-- Table `event_participant`
1156 8593 aaronmk
-- -----------------------------------------------------
1157 8632 aaronmk
DROP TABLE IF EXISTS `event_participant` ;
1158
1159 8598 aaronmk
CREATE  TABLE IF NOT EXISTS `event_participant` (
1160 8620 aaronmk
  `event` VARBINARY(767) NOT NULL ,
1161
  `party` VARBINARY(767) NOT NULL ,
1162 8598 aaronmk
  `sort_order` INT NULL ,
1163
  PRIMARY KEY (`event`, `party`) ,
1164 8612 aaronmk
  INDEX `fk_event_has_party_party1_idx` (`party` ASC) ,
1165
  INDEX `fk_event_has_party_event1_idx` (`event` ASC) ,
1166 8598 aaronmk
  CONSTRAINT `fk_event_has_party_event1`
1167
    FOREIGN KEY (`event` )
1168
    REFERENCES `event` (`id` )
1169
    ON DELETE CASCADE
1170
    ON UPDATE CASCADE,
1171
  CONSTRAINT `fk_event_has_party_party1`
1172
    FOREIGN KEY (`party` )
1173 8593 aaronmk
    REFERENCES `party` (`id` )
1174
    ON DELETE CASCADE
1175
    ON UPDATE CASCADE)
1176
ENGINE = InnoDB
1177 8621 aaronmk
DEFAULT CHARACTER SET = utf8
1178
COLLATE = utf8_bin;
1179 8581 aaronmk
1180 8593 aaronmk
1181 8594 aaronmk
-- -----------------------------------------------------
1182 8821 aaronmk
-- Table `specimenholder_institution`
1183 8594 aaronmk
-- -----------------------------------------------------
1184 8821 aaronmk
DROP TABLE IF EXISTS `specimenholder_institution` ;
1185 8632 aaronmk
1186 8821 aaronmk
CREATE  TABLE IF NOT EXISTS `specimenholder_institution` (
1187 8620 aaronmk
  `specimen` VARBINARY(767) NOT NULL ,
1188
  `institution` VARBINARY(767) NOT NULL ,
1189 8597 aaronmk
  `sort_order` INT NULL ,
1190 8598 aaronmk
  PRIMARY KEY (`specimen`, `institution`) ,
1191 8612 aaronmk
  INDEX `fk_specimen_has_organization_organization1_idx` (`institution` ASC) ,
1192
  INDEX `fk_specimen_has_organization_specimen1_idx` (`specimen` ASC) ,
1193 8598 aaronmk
  CONSTRAINT `fk_specimen_has_organization_specimen1`
1194
    FOREIGN KEY (`specimen` )
1195
    REFERENCES `specimen` (`id` )
1196 8597 aaronmk
    ON DELETE CASCADE
1197
    ON UPDATE CASCADE,
1198 8598 aaronmk
  CONSTRAINT `fk_specimen_has_organization_organization1`
1199
    FOREIGN KEY (`institution` )
1200
    REFERENCES `organization` (`id` )
1201 8594 aaronmk
    ON DELETE CASCADE
1202
    ON UPDATE CASCADE)
1203
ENGINE = InnoDB
1204 8621 aaronmk
DEFAULT CHARACTER SET = utf8
1205
COLLATE = utf8_bin;
1206 8593 aaronmk
1207 8632 aaronmk
USE `VegCore` ;
1208 8594 aaronmk
1209
1210 8336 aaronmk
SET SQL_MODE=@OLD_SQL_MODE;
1211
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
1212
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;