Mercurial > gemma
diff 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 |
line wrap: on
line diff
--- a/schema/gemma.sql Thu Jun 13 11:20:17 2019 +0200 +++ b/schema/gemma.sql Thu Jun 13 19:13:42 2019 +0200 @@ -489,6 +489,7 @@ id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, bottleneck_id varchar NOT NULL, validity tstzrange NOT NULL CHECK (NOT isempty(validity)), + UNIQUE (bottleneck_id, validity), EXCLUDE USING GiST (bottleneck_id WITH =, validity WITH &&) DEFERRABLE INITIALLY DEFERRED, gauge_location isrs NOT NULL, @@ -535,8 +536,15 @@ CREATE TABLE sounding_results ( id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, - bottleneck_id int NOT NULL REFERENCES bottlenecks(id), + bottleneck_id varchar NOT NULL, + bottleneck_validity tstzrange NOT NULL, + CONSTRAINT bottleneck_key + FOREIGN KEY (bottleneck_id, bottleneck_validity) + REFERENCES bottlenecks (bottleneck_id, validity) + ON UPDATE CASCADE, date_info date NOT NULL, + CHECK (tstzrange(date_info::timestamptz, + date_info::timestamptz + '1 d'::interval) && bottleneck_validity), UNIQUE (bottleneck_id, date_info), area geography(POLYGON, 4326) NOT NULL CHECK(ST_IsValid(CAST(area AS geometry))),