Mercurial > dive4elements > river
diff backend/doc/schema/postgresql-minfo.sql @ 8945:4a6b6a3c279c
Merge
author | mschaefer |
---|---|
date | Tue, 13 Mar 2018 09:55:53 +0100 |
parents | 71b17f731762 |
children | f89fb9e9abad |
line wrap: on
line diff
--- a/backend/doc/schema/postgresql-minfo.sql Fri Mar 09 18:47:06 2018 +0100 +++ b/backend/doc/schema/postgresql-minfo.sql Tue Mar 13 09:55:53 2018 +0100 @@ -3,7 +3,7 @@ CREATE SEQUENCE LOCATION_SYSTEM_SEQ; CREATE TABLE location_system ( - id int NOT NULL, + id NUMERIC(9,0) NOT NULL, name VARCHAR(32) NOT NULL, description VARCHAR(255), PRIMARY KEY(id) @@ -13,9 +13,9 @@ CREATE SEQUENCE ELEVATION_MODEL_SEQ; CREATE TABLE elevation_model ( - id int NOT NULL, + id NUMERIC(9,0) NOT NULL, name VARCHAR(32) NOT NULL, - unit_id int NOT NULL, + unit_id NUMERIC(9,0) NOT NULL, PRIMARY KEY(id), CONSTRAINT fk_unit FOREIGN KEY (unit_id) REFERENCES units(id) ); @@ -23,7 +23,7 @@ -- lookup table for bedheight types CREATE TABLE bed_height_type ( - id int NOT NULL, + id NUMERIC(9,0) NOT NULL, name VARCHAR(64) NOT NULL, PRIMARY KEY(id) ); @@ -38,14 +38,14 @@ CREATE SEQUENCE BED_HEIGHT_ID_SEQ; CREATE TABLE bed_height ( - id int NOT NULL, - river_id int NOT NULL, - year int, - type_id int NOT NULL, - location_system_id int NOT NULL, - cur_elevation_model_id int NOT NULL, - old_elevation_model_id int, - range_id int, + id NUMERIC(9,0) NOT NULL, + river_id NUMERIC(9,0) NOT NULL, + year NUMERIC(9,0), + type_id NUMERIC(9,0) NOT NULL, + location_system_id NUMERIC(9,0) NOT NULL, + cur_elevation_model_id NUMERIC(9,0) NOT NULL, + old_elevation_model_id NUMERIC(9,0), + range_id NUMERIC(9,0), evaluation_by VARCHAR(255), description VARCHAR(255), PRIMARY KEY(id), @@ -65,14 +65,16 @@ CREATE SEQUENCE BED_HEIGHT_VALUES_ID_SEQ; +--FIXME: make precision and scale of station column equal with the km columns of the other tables +--FIXME: replace double precision with exact types CREATE TABLE bed_height_values ( - id int NOT NULL, - bed_height_id int NOT NULL, - station NUMERIC NOT NULL, - height NUMERIC, - uncertainty NUMERIC, - data_gap NUMERIC, - sounding_width NUMERIC, + id NUMERIC(9,0) NOT NULL, + bed_height_id NUMERIC(9,0) NOT NULL, + station DOUBLE PRECISION NOT NULL, + height DOUBLE PRECISION, + uncertainty DOUBLE PRECISION, + data_gap DOUBLE PRECISION, + sounding_width DOUBLE PRECISION, PRIMARY KEY(id), UNIQUE (station, bed_height_id), CONSTRAINT fk_bed_values_parent FOREIGN KEY (bed_height_id) @@ -83,9 +85,9 @@ CREATE SEQUENCE DEPTHS_ID_SEQ; CREATE TABLE depths ( - id int NOT NULL, - lower NUMERIC NOT NULL, - upper NUMERIC NOT NULL, + id NUMERIC(9,0) NOT NULL, + lower NUMERIC(6,2) NOT NULL, + upper NUMERIC(6,2) NOT NULL, PRIMARY KEY(id) ); @@ -93,9 +95,9 @@ CREATE SEQUENCE SEDIMENT_DENSITY_ID_SEQ; CREATE TABLE sediment_density ( - id int NOT NULL, - river_id int NOT NULL, - depth_id int NOT NULL, + id NUMERIC(9,0) NOT NULL, + river_id NUMERIC(9,0) NOT NULL, + depth_id NUMERIC(9,0) NOT NULL, description VARCHAR(256), PRIMARY KEY(id), CONSTRAINT fk_sd_river_id FOREIGN KEY (river_id) REFERENCES rivers(id) ON DELETE CASCADE, @@ -105,14 +107,15 @@ CREATE SEQUENCE SEDIMENT_DENSITY_VALUES_ID_SEQ; +--FIXME: make precision and scale of station column equal with the km columns of the other tables CREATE TABLE sediment_density_values ( - id int NOT NULL, - sediment_density_id int NOT NULL, - station NUMERIC NOT NULL, - shore_offset NUMERIC, - density NUMERIC NOT NULL, + id NUMERIC(9,0) NOT NULL, + sediment_density_id NUMERIC(9,0) NOT NULL, + station NUMERIC(6,2) NOT NULL, + shore_offset NUMERIC(6,2), + density NUMERIC(8,2) NOT NULL, description VARCHAR(256), - year int, + year NUMERIC(4,0), PRIMARY KEY(id), CONSTRAINT fk_sdv_sediment_density_id FOREIGN KEY(sediment_density_id) REFERENCES sediment_density(id) ON DELETE CASCADE ); @@ -121,11 +124,11 @@ CREATE SEQUENCE POROSITY_ID_SEQ; CREATE TABLE porosity ( - id int NOT NULL, - river_id int NOT NULL, - depth_id int NOT NULL, + id NUMERIC(9,0) NOT NULL, + river_id NUMERIC(9,0) NOT NULL, + depth_id NUMERIC(9,0) NOT NULL, description VARCHAR(256), - time_interval_id int NOT NULL, + time_interval_id NUMERIC(9,0) NOT NULL, PRIMARY KEY(id), CONSTRAINT fk_p_river_id FOREIGN KEY (river_id) REFERENCES rivers(id) ON DELETE CASCADE, CONSTRAINT fk_p_depth_id FOREIGN KEY (depth_id) REFERENCES depths(id), @@ -135,12 +138,13 @@ CREATE SEQUENCE POROSITY_VALUES_ID_SEQ; +--FIXME: make precision and scale of station column equal with the km columns of the other tables CREATE TABLE porosity_values ( - id int NOT NULL, - porosity_id int NOT NULL, - station NUMERIC NOT NULL, - shore_offset NUMERIC, - porosity NUMERIC NOT NULL, + id NUMERIC(9,0) NOT NULL, + porosity_id NUMERIC(9,0) NOT NULL, + station DOUBLE PRECISION NOT NULL, + shore_offset DOUBLE PRECISION, + porosity DOUBLE PRECISION NOT NULL, description VARCHAR(256), PRIMARY KEY(id), CONSTRAINT fk_pv_porosity_id FOREIGN KEY(porosity_id) REFERENCES porosity(id) ON DELETE CASCADE @@ -150,9 +154,9 @@ CREATE SEQUENCE MORPHOLOGIC_WIDTH_ID_SEQ; CREATE TABLE morphologic_width ( - id int NOT NULL, - river_id int NOT NULL, - unit_id int NOT NULL, + id NUMERIC(9,0) NOT NULL, + river_id NUMERIC(9,0) NOT NULL, + unit_id NUMERIC(9,0) NOT NULL, PRIMARY KEY(id), CONSTRAINT fk_mw_river_id FOREIGN KEY(river_id) REFERENCES rivers(id) ON DELETE CASCADE, CONSTRAINT fk_mw_unit_id FOREIGN KEY(unit_id) REFERENCES units(id) @@ -162,10 +166,10 @@ CREATE SEQUENCE MORPH_WIDTH_VALUES_ID_SEQ; CREATE TABLE morphologic_width_values ( - id int NOT NULL, - morphologic_width_id int NOT NULL, - station NUMERIC NOT NULL, - width NUMERIC NOT NULL, + id NUMERIC(9,0) NOT NULL, + morphologic_width_id NUMERIC(9,0) NOT NULL, + station NUMERIC(7,3) NOT NULL, + width NUMERIC(7,3) NOT NULL, description VARCHAR(256), PRIMARY KEY(id), CONSTRAINT fk_mwv_morphologic_width_id FOREIGN KEY (morphologic_width_id) REFERENCES morphologic_width(id) ON DELETE CASCADE @@ -175,10 +179,10 @@ CREATE SEQUENCE DISCHARGE_ZONE_ID_SEQ; CREATE TABLE discharge_zone ( - id int NOT NULL, - river_id int NOT NULL, + id NUMERIC(9,0) NOT NULL, + river_id NUMERIC(9,0) NOT NULL, gauge_name VARCHAR(64) NOT NULL, -- this is not very proper, but there are gauges with no db instance - value NUMERIC NOT NULL, + value NUMERIC(8,3) NOT NULL, lower_discharge VARCHAR(64) NOT NULL, upper_discharge VARCHAR(64), PRIMARY KEY(id), @@ -189,8 +193,8 @@ CREATE SEQUENCE FLOW_VELOCITY_MODEL_ID_SEQ; CREATE TABLE flow_velocity_model ( - id int NOT NULL, - discharge_zone_id int NOT NULL, + id NUMERIC(9,0) NOT NULL, + discharge_zone_id NUMERIC(9,0) NOT NULL, description VARCHAR(256), PRIMARY KEY (id), CONSTRAINT fk_fvm_discharge_zone_id FOREIGN KEY (discharge_zone_id) REFERENCES discharge_zone (id) ON DELETE CASCADE @@ -200,13 +204,13 @@ CREATE SEQUENCE FLOW_VELOCITY_M_VALUES_ID_SEQ; CREATE TABLE flow_velocity_model_values ( - id int NOT NULL, - flow_velocity_model_id int NOT NULL, - station NUMERIC NOT NULL, - q NUMERIC NOT NULL, - total_channel NUMERIC NOT NULL, - main_channel NUMERIC NOT NULL, - shear_stress NUMERIC NOT NULL, + id NUMERIC(9,0) NOT NULL, + flow_velocity_model_id NUMERIC(9,0) NOT NULL, + station NUMERIC(7,3) NOT NULL, + q NUMERIC(8,3) NOT NULL, + total_channel NUMERIC(5,3) NOT NULL, + main_channel NUMERIC(5,3) NOT NULL, + shear_stress NUMERIC(6,3) NOT NULL, PRIMARY KEY(id), UNIQUE (station, flow_velocity_model_id), CONSTRAINT fk_fvv_flow_velocity_model_id FOREIGN KEY (flow_velocity_model_id) REFERENCES flow_velocity_model(id) ON DELETE CASCADE @@ -217,8 +221,8 @@ CREATE SEQUENCE FV_MEASURE_ID_SEQ; CREATE TABLE flow_velocity_measurements ( - id int NOT NULL, - river_id int NOT NULL, + id NUMERIC(9,0) NOT NULL, + river_id NUMERIC(9,0) NOT NULL, description VARCHAR(256), PRIMARY KEY (id), CONSTRAINT fk_fvm_rivers_id FOREIGN KEY (river_id) REFERENCES rivers(id) ON DELETE CASCADE @@ -227,13 +231,13 @@ CREATE SEQUENCE FV_MEASURE_VALUES_ID_SEQ; CREATE TABLE flow_velocity_measure_values ( - id int NOT NULL, - measurements_id int NOT NULL, - station NUMERIC NOT NULL, - datetime TIMESTAMP, - w NUMERIC NOT NULL, - q NUMERIC NOT NULL, - v NUMERIC NOT NULL, + id NUMERIC(9,0) NOT NULL, + measurements_id NUMERIC(9,0) NOT NULL, + station NUMERIC(7,3) NOT NULL, + datetime TIMESTAMP(0), + w NUMERIC(7,3) NOT NULL, + q NUMERIC(8,3) NOT NULL, + v NUMERIC(5,3) NOT NULL, description VARCHAR(256), PRIMARY KEY (id), CONSTRAINT fk_fvmv_measurements_id FOREIGN KEY (measurements_id) REFERENCES flow_velocity_measurements (id) ON DELETE CASCADE @@ -243,10 +247,10 @@ CREATE SEQUENCE GRAIN_FRACTION_ID_SEQ; CREATE TABLE grain_fraction ( - id int NOT NULL, + id NUMERIC(9,0) NOT NULL, name VARCHAR(64) NOT NULL, - lower NUMERIC, - upper NUMERIC, + lower NUMERIC(6,3), + upper NUMERIC(6,3), PRIMARY KEY (id), UNIQUE(name, lower, upper) ); @@ -265,7 +269,7 @@ --lookup table for sediment load kinds CREATE TABLE sediment_load_kinds ( - id int PRIMARY KEY NOT NULL, + id NUMERIC(9,0) PRIMARY KEY NOT NULL, kind VARCHAR(64) NOT NULL ); INSERT INTO sediment_load_kinds (id, kind) VALUES (0, 'non-official'); @@ -274,14 +278,14 @@ CREATE SEQUENCE SEDIMENT_LOAD_LS_ID_SEQ; CREATE TABLE sediment_load_ls ( - id int NOT NULL, - river_id int NOT NULL, - grain_fraction_id int, - unit_id int NOT NULL, - time_interval_id int NOT NULL, - sq_time_interval_id int, + id NUMERIC(9,0) NOT NULL, + river_id NUMERIC(9,0) NOT NULL, + grain_fraction_id NUMERIC(9,0), + unit_id NUMERIC(9,0) NOT NULL, + time_interval_id NUMERIC(9,0) NOT NULL, + sq_time_interval_id NUMERIC(9,0), description VARCHAR(256), - kind int, + kind NUMERIC(9,0), PRIMARY KEY (id), CONSTRAINT fk_slls_river_id FOREIGN KEY (river_id) REFERENCES rivers(id) ON DELETE CASCADE, @@ -301,10 +305,10 @@ CREATE SEQUENCE SEDIMENT_LOAD_LS_VALUES_ID_SEQ; CREATE TABLE sediment_load_ls_values ( - id int NOT NULL, - sediment_load_ls_id int NOT NULL, - station NUMERIC NOT NULL, - value NUMERIC NOT NULL, + id NUMERIC(9,0) NOT NULL, + sediment_load_ls_id NUMERIC(9,0) NOT NULL, + station NUMERIC(7,3) NOT NULL, + value NUMERIC(10,3) NOT NULL, PRIMARY KEY (id), CONSTRAINT fk_sllsv_sediment_load_ls_id FOREIGN KEY (sediment_load_ls_id) REFERENCES sediment_load_ls(id) ON DELETE CASCADE @@ -313,10 +317,10 @@ CREATE SEQUENCE MEASUREMENT_STATION_ID_SEQ; CREATE TABLE measurement_station ( - id int NOT NULL, - range_id int NOT NULL, - reference_gauge_id int, - time_interval_id int, + id NUMERIC(9,0) NOT NULL, + range_id NUMERIC(9,0) NOT NULL, + reference_gauge_id NUMERIC(9,0), + time_interval_id NUMERIC(9,0), name VARCHAR(256) NOT NULL, measurement_type VARCHAR(64) NOT NULL, riverside VARCHAR(16), @@ -338,12 +342,12 @@ CREATE SEQUENCE SEDIMENT_LOAD_ID_SEQ; CREATE TABLE sediment_load ( - id int NOT NULL, - grain_fraction_id int NOT NULL, - time_interval_id int NOT NULL, - sq_time_interval_id int, + id NUMERIC(9,0) NOT NULL, + grain_fraction_id NUMERIC(9,0) NOT NULL, + time_interval_id NUMERIC(9,0) NOT NULL, + sq_time_interval_id NUMERIC(9,0), description VARCHAR(256), - kind int, + kind NUMERIC(9,0), PRIMARY KEY (id), CONSTRAINT fk_sl_kind_id FOREIGN KEY (kind) REFERENCES sediment_load_kinds(id), @@ -359,9 +363,9 @@ CREATE SEQUENCE SEDIMENT_LOAD_VALUES_ID_SEQ; CREATE TABLE sediment_load_values ( - id int NOT NULL, - sediment_load_id int NOT NULL, - measurement_station_id int NOT NULL, + id NUMERIC(9,0) NOT NULL, + sediment_load_id NUMERIC(9,0) NOT NULL, + measurement_station_id NUMERIC(9,0) NOT NULL, value DOUBLE PRECISION NOT NULL, PRIMARY KEY (id), CONSTRAINT fk_slv_sediment_load_id FOREIGN KEY (sediment_load_id) @@ -374,8 +378,8 @@ CREATE SEQUENCE SQ_RELATION_ID_SEQ; CREATE TABLE sq_relation ( - id int NOT NULL, - time_interval_id int NOT NULL, + id NUMERIC(9,0) NOT NULL, + time_interval_id NUMERIC(9,0) NOT NULL, description VARCHAR(256), PRIMARY KEY (id), CONSTRAINT fk_sqr_tinterval_id FOREIGN KEY (time_interval_id) @@ -385,19 +389,20 @@ CREATE SEQUENCE SQ_RELATION_VALUES_ID_SEQ; +--FIXME: adjust precision and scale of the numerics CREATE TABLE sq_relation_value ( - id int NOT NULL, - sq_relation_id int NOT NULL, - measurement_station_id int NOT NULL, + id NUMERIC(9,0) NOT NULL, + sq_relation_id NUMERIC(9,0) NOT NULL, + measurement_station_id NUMERIC(9,0) NOT NULL, parameter VARCHAR(1) NOT NULL, - a NUMERIC NOT NULL, - b NUMERIC NOT NULL, - qmax NUMERIC NOT NULL, - rsq NUMERIC, - ntot int, - noutl int, - cferguson NUMERIC, - cduan NUMERIC, + a NUMERIC(38,20) NOT NULL, + b NUMERIC(38,20) NOT NULL, + qmax NUMERIC(38,20) NOT NULL, + rsq NUMERIC(38,3), + ntot NUMERIC(9,0), + noutl NUMERIC(9,0), + cferguson NUMERIC(38,20), + cduan NUMERIC(38,20), PRIMARY KEY (id), UNIQUE(sq_relation_id, measurement_station_id, parameter), CONSTRAINT fk_sqr_id FOREIGN KEY (sq_relation_id)