gis/migrations/00005_create_dataset_observations_table.sql

21 lines
875 B
SQL

-- +goose Up
-- Long-format (tidy) values unpivoted from a vector_with_kato dataset's
-- attribute table: one row per (KATO code, date). value holds numeric cells,
-- value_text holds non-numeric ones.
CREATE TABLE dataset_observations (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
dataset_id UUID NOT NULL REFERENCES datasets (id) ON DELETE CASCADE,
kato_code TEXT NOT NULL,
date DATE NOT NULL,
value DOUBLE PRECISION,
value_text TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE UNIQUE INDEX uq_dataset_observations ON dataset_observations (dataset_id, kato_code, date);
CREATE INDEX idx_dataset_observations_dataset ON dataset_observations (dataset_id);
CREATE INDEX idx_dataset_observations_kato_date ON dataset_observations (kato_code, date);
-- +goose Down
DROP TABLE dataset_observations;