changeset 58:30cb2f87c268

Add effective fairway availability.
author Tom Gottfried <tom@intevation.de>
date Thu, 24 May 2018 14:38:27 +0200
parents 353f804e86ae
children 37faa7359ea6
files wamos.sql
diffstat 1 files changed, 20 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/wamos.sql	Thu May 24 11:51:14 2018 +0200
+++ b/wamos.sql	Thu May 24 14:38:27 2018 +0200
@@ -149,6 +149,10 @@
        level_of_service smallint PRIMARY KEY
        );
 
+CREATE TABLE measure_types (
+       measure_type varchar PRIMARY KEY
+       );
+
 CREATE TABLE fairway_availability (
        bottleneck_id varchar NOT NULL REFERENCES bottlenecks,
        surdat date NOT NULL,
@@ -190,8 +194,22 @@
 CREATE TABLE effective_fairway_availability (
        bottleneck_id varchar NOT NULL REFERENCES bottlenecks,
        surdat date NOT NULL,
-       FOREIGN KEY (bottleneck_id, surdat) REFERENCES fairway_availability
-       -- TODO
+       FOREIGN KEY (bottleneck_id, surdat) REFERENCES fairway_availability,
+       measure_date timestamp NOT NULL,
+       level_of_service smallint NOT NULL REFERENCES levels_of_service,
+       PRIMARY KEY (bottleneck_id, surdat, measure_date, level_of_service),
+       available_depth_value smallint,
+       available_width_value smallint,
+       water_level_value smallint,
+       CHECK(COALESCE(available_depth_value, available_width_value,
+           water_level_value) IS NOT NULL),
+       measure_type varchar NOT NULL REFERENCES measure_types,
+       source_organization varchar NOT NULL,
+       forecast_generation_time timestamp,
+       CHECK(measure_type <> 'forecasted'
+             OR forecast_generation_time IS NOT NULL),
+       value_lifetime timestamp,
+       CHECK(measure_type = 'minimum guaranteed' OR value_lifetime IS NOT NULL)
        );
 
 COMMIT;