borders/db/create_tables.sql

44 lines
1.2 KiB
SQL

\c borders borders
CREATE TABLE tiles (
tile geometry NOT NULL,
count INTEGER NOT NULL DEFAULT 0
);
CREATE TABLE borders (
id BIGINT PRIMARY KEY,
parent_id BIGINT REFERENCES borders(id),
name VARCHAR(200),
geom geometry NOT NULL,
disabled boolean NOT NULL DEFAULT FALSE,
count_k INTEGER,
modified TIMESTAMP NOT NULL,
cmnt VARCHAR(500),
mwm_size_est REAL
);
CREATE INDEX borders_geom_gits_idx ON borders USING gist (geom);
CREATE INDEX borders_parent_id_idx ON borders (parent_id);
CREATE TABLE borders_backup (
backup VARCHAR(30) NOT NULL,
id BIGINT NOT NULL,
parent_id BIGINT,
name VARCHAR(200) NOT NULL,
geom geometry NOT NULL,
disabled boolean NOT NULL DEFAULT FALSE,
count_k INTEGER,
modified TIMESTAMP NOT NULL,
cmnt VARCHAR(500),
mwm_size_est REAL,
PRIMARY KEY (backup, id)
);
CREATE TABLE splitting (
osm_border_id BIGINT NOT NULL REFERENCES osm_borders(osm_id), -- reference to parent osm region
subregion_ids BIGINT[] NOT NULL,
mwm_size_est REAL NOT NULL,
mwm_size_thr INTEGER NOT NULL, -- mwm size threshold in Kb, 4-bytes INTEGER is enough
next_level INTEGER NOT NULL,
geom geometry NOT NULL
);
CREATE INDEX splitting_idx ON splitting (osm_border_id, mwm_size_thr, next_level);