Mercurial > gemma
comparison schema/gemma.sql @ 3656:2a079d0a71c1
Ensure sounding results are associated to matching bottleneck version
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 13 Jun 2019 19:13:42 +0200 |
parents | 0ec5c8ec1e44 |
children | 29ef6d41e4af |
comparison
equal
deleted
inserted
replaced
3649:fb8a53c7c6d3 | 3656:2a079d0a71c1 |
---|---|
487 -- | 487 -- |
488 CREATE TABLE bottlenecks ( | 488 CREATE TABLE bottlenecks ( |
489 id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, | 489 id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, |
490 bottleneck_id varchar NOT NULL, | 490 bottleneck_id varchar NOT NULL, |
491 validity tstzrange NOT NULL CHECK (NOT isempty(validity)), | 491 validity tstzrange NOT NULL CHECK (NOT isempty(validity)), |
492 UNIQUE (bottleneck_id, validity), | |
492 EXCLUDE USING GiST (bottleneck_id WITH =, validity WITH &&) | 493 EXCLUDE USING GiST (bottleneck_id WITH =, validity WITH &&) |
493 DEFERRABLE INITIALLY DEFERRED, | 494 DEFERRABLE INITIALLY DEFERRED, |
494 gauge_location isrs NOT NULL, | 495 gauge_location isrs NOT NULL, |
495 gauge_validity tstzrange NOT NULL, | 496 gauge_validity tstzrange NOT NULL, |
496 CHECK(lower(validity) <@ gauge_validity), | 497 CHECK(lower(validity) <@ gauge_validity), |
533 PRIMARY KEY (bottleneck_id, riverbed) | 534 PRIMARY KEY (bottleneck_id, riverbed) |
534 ) | 535 ) |
535 | 536 |
536 CREATE TABLE sounding_results ( | 537 CREATE TABLE sounding_results ( |
537 id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, | 538 id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, |
538 bottleneck_id int NOT NULL REFERENCES bottlenecks(id), | 539 bottleneck_id varchar NOT NULL, |
540 bottleneck_validity tstzrange NOT NULL, | |
541 CONSTRAINT bottleneck_key | |
542 FOREIGN KEY (bottleneck_id, bottleneck_validity) | |
543 REFERENCES bottlenecks (bottleneck_id, validity) | |
544 ON UPDATE CASCADE, | |
539 date_info date NOT NULL, | 545 date_info date NOT NULL, |
546 CHECK (tstzrange(date_info::timestamptz, | |
547 date_info::timestamptz + '1 d'::interval) && bottleneck_validity), | |
540 UNIQUE (bottleneck_id, date_info), | 548 UNIQUE (bottleneck_id, date_info), |
541 area geography(POLYGON, 4326) NOT NULL | 549 area geography(POLYGON, 4326) NOT NULL |
542 CHECK(ST_IsValid(CAST(area AS geometry))), | 550 CHECK(ST_IsValid(CAST(area AS geometry))), |
543 surtyp varchar REFERENCES survey_types, | 551 surtyp varchar REFERENCES survey_types, |
544 coverage varchar REFERENCES coverage_types, | 552 coverage varchar REFERENCES coverage_types, |