comparison wamos.sql @ 65:cad19acc53b3

Avoid duplicate direct relations in composite primary keys.
author Tom Gottfried <tom@intevation.de>
date Fri, 25 May 2018 21:45:08 +0200
parents 1e9589cf9c00
children 21df0e95db4a
comparison
equal deleted inserted replaced
64:1e9589cf9c00 65:cad19acc53b3
171 CREATE TRIGGER fairway_availability_date_info 171 CREATE TRIGGER fairway_availability_date_info
172 BEFORE UPDATE ON fairway_availability 172 BEFORE UPDATE ON fairway_availability
173 FOR EACH ROW EXECUTE PROCEDURE update_date_info(); 173 FOR EACH ROW EXECUTE PROCEDURE update_date_info();
174 174
175 CREATE TABLE wamos.fa_reference_values ( 175 CREATE TABLE wamos.fa_reference_values (
176 bottleneck_id varchar NOT NULL REFERENCES bottlenecks, 176 id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
177 surdat date NOT NULL, 177 fairway_availability_id NOT NULL REFERENCES fairway_availability,
178 FOREIGN KEY (bottleneck_id, surdat) REFERENCES fairway_availability,
179 level_of_service smallint NOT NULL REFERENCES levels_of_service, 178 level_of_service smallint NOT NULL REFERENCES levels_of_service,
180 PRIMARY KEY (bottleneck_id, surdat, level_of_service), 179 PRIMARY KEY (fairway_availability_id, level_of_service),
181 fairway_depth smallint, 180 fairway_depth smallint,
182 fairway_width smallint, 181 fairway_width smallint,
183 fairway_radius int, 182 fairway_radius int,
184 CHECK(COALESCE(fairway_depth, fairway_width, fairway_radius) IS NOT NULL), 183 CHECK(COALESCE(fairway_depth, fairway_width, fairway_radius) IS NOT NULL),
185 shallowest_spot geometry(POINT, 3146) 184 shallowest_spot geometry(POINT, 3146)
186 ); 185 );
187 186
188 CREATE TABLE wamos.bottleneck_pdfs ( 187 CREATE TABLE wamos.bottleneck_pdfs (
189 bottleneck_id varchar NOT NULL REFERENCES bottlenecks, 188 id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
190 surdat date NOT NULL, 189 fairway_availability_id NOT NULL REFERENCES fairway_availability,
191 FOREIGN KEY (bottleneck_id, surdat) REFERENCES fairway_availability,
192 profile_pdf_filename varchar NOT NULL, -- redundant to last part of URL 190 profile_pdf_filename varchar NOT NULL, -- redundant to last part of URL
193 profile_pdf_url varchar NOT NULL, -- prohibit insecure URLs somehow? 191 profile_pdf_url varchar NOT NULL, -- prohibit insecure URLs somehow?
194 PRIMARY KEY (bottleneck_id, surdat, profile_pdf_url), 192 PRIMARY KEY (fairway_availability_id, profile_pdf_url),
195 pdf_generation_date timestamp with time zone NOT NULL, 193 pdf_generation_date timestamp with time zone NOT NULL,
196 source_organization varchar NOT NULL 194 source_organization varchar NOT NULL
197 ); 195 );
198 196
199 CREATE TABLE wamos.effective_fairway_availability ( 197 CREATE TABLE wamos.effective_fairway_availability (
200 bottleneck_id varchar NOT NULL REFERENCES bottlenecks, 198 id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
201 surdat date NOT NULL, 199 fairway_availability_id NOT NULL REFERENCES fairway_availability,
202 FOREIGN KEY (bottleneck_id, surdat) REFERENCES fairway_availability,
203 measure_date timestamp with time zone NOT NULL, 200 measure_date timestamp with time zone NOT NULL,
204 level_of_service smallint NOT NULL REFERENCES levels_of_service, 201 level_of_service smallint NOT NULL REFERENCES levels_of_service,
205 PRIMARY KEY (bottleneck_id, surdat, measure_date, level_of_service), 202 PRIMARY KEY (fairway_availability_id, measure_date, level_of_service),
206 available_depth_value smallint, 203 available_depth_value smallint,
207 available_width_value smallint, 204 available_width_value smallint,
208 water_level_value smallint, 205 water_level_value smallint,
209 CHECK(COALESCE(available_depth_value, available_width_value, 206 CHECK(COALESCE(available_depth_value, available_width_value,
210 water_level_value) IS NOT NULL), 207 water_level_value) IS NOT NULL),