diff --git a/sql/base.sql b/sql/base.sql index 3b12e8e..7a27446 100644 --- a/sql/base.sql +++ b/sql/base.sql @@ -32,6 +32,8 @@ CREATE TABLE AT_gemeinde ( CONSTRAINT pk_AT_gemeinde PRIMARY KEY (gkz), CONSTRAINT fk_AT_gemeinde_AT_bundesland FOREIGN KEY (land_id) REFERENCES AT_bundesland (id) + ON UPDATE CASCADE + ON DELETE RESTRICT ) STRICT; CREATE TABLE AT_ort ( @@ -41,15 +43,78 @@ CREATE TABLE AT_ort ( CONSTRAINT pk_AT_ort PRIMARY KEY (okz), CONSTRAINT fk_AT_ort_AT_gemeinde FOREIGN KEY (gkz) REFERENCES AT_gemeinde (gkz) + ON UPDATE CASCADE + ON DELETE RESTRICT ) STRICT; CREATE TABLE AT_plz ( plz INTEGER NOT NULL CHECK(plz >= 1000 AND plz <= 9999), okz INTEGER NOT NULL, + id INTEGER NOT NULL CHECK(id = plz * 100000 + okz), name TEXT NOT NULL, CONSTRAINT pk_AT_plz PRIMARY KEY (plz, okz), + CONSTRAINT sk_AT_plz_id UNIQUE (id), CONSTRAINT fk_AT_plz_AT_ort FOREIGN KEY (okz) REFERENCES AT_ort (okz) + ON UPDATE CASCADE + ON DELETE RESTRICT +) STRICT; + +CREATE TABLE origin ( + id TEXT NOT NULL CHECK(LENGTH(id) = 4), + parent_id TEXT, + name TEXT NOT NULL, + + land_id INTEGER, + + CONSTRAINT pk_origin PRIMARY KEY (id), + CONSTRAINT sk_origin_name UNIQUE (name), + CONSTRAINT fk_origin_origin FOREIGN KEY (parent_id) REFERENCES origin (id) + ON UPDATE CASCADE + ON DELETE RESTRICT, + CONSTRAINT fk_origin_AT_bundesland FOREIGN KEY (land_id) REFERENCES AT_bundesland (id) + ON UPDATE CASCADE + ON DELETE RESTRICT +) STRICT; + +-- Weinbauland +--CREATE TABLE wbl() STRICT; + +-- Weinbauregion +--CREATE TABLE wbr() STRICT; + +-- Generisches Weinbaugebiet +--CREATE TABLE wbgg() STRICT; + +-- Spezifisches Weinbaugebeit +--CREATE TABLE wbgs() STRICT; + +-- Großlage +CREATE TABLE wbgl ( + id INTEGER NOT NULL, + + CONSTRAINT pk_wbgl PRIMARY KEY (id) +) STRICT; + +-- Weinbaugemeinde +CREATE TABLE wbgem ( + id INTEGER NOT NULL, + + CONSTRAINT pk_wbgem PRIMARY KEY (id) +) STRICT; + +-- Weinbaukatastralgemeinde +CREATE TABLE wbkg ( + id INTEGER NOT NULL, + + CONSTRAINT pk_wbkg PRIMARY KEY (id) +) STRICT; + +-- Ried +CREATE TABLE wbrd ( + id INTEGER NOT NULL, + + CONSTRAINT pk_wbrd PRIMARY KEY (id) ) STRICT; @@ -70,3 +135,36 @@ INSERT INTO AT_bundesland VALUES (7, 'T', NULL, 'Tirol'), (8, 'V', 'Vbg.', 'Vorarlberg'), (9, 'W', NULL, 'Wien'); + +INSERT INTO origin VALUES +('AUSL', NULL , 'Ausland', NULL), +('EUXX', NULL , 'Verschnitt von mehreren Weinen der EU', NULL), +('OEST', NULL , 'Österreich', NULL), +('BLXX', 'OEST', 'Bergland', NULL), +('SLXX', 'OEST', 'Steirerland', NULL), +('WLXX', 'OEST', 'Weinland', NULL), +('BLKA', 'BLXX', 'Kärnten', 2), +('BLOO', 'BLXX', 'Oberösterreich', 4), +('BLSB', 'BLXX', 'Salzburg', 5), +('BLTI', 'BLXX', 'Tirol', 7), +('BLVO', 'BLXX', 'Vorarlberg', 8), +('SLST', 'SLXX', 'Steiermark', 6), +('SLSS', 'SLST', 'Südsteiermark', NULL), +('SLVL', 'SLST', 'Vulkanland Steiermark', NULL), +('SLWS', 'SLST', 'Weststeiermark', NULL), +('WIEN', 'WLXX', 'Wien', 9), +('WLNO', 'WLXX', 'Niederösterreich', 3), +('WLBL', 'WLXX', 'Burgenland', 1), +('WLCA', 'WLNO', 'Carnuntum', NULL), +('WLKA', 'WLNO', 'Kamptal', NULL), +('WLKT', 'WLNO', 'Kremstal', NULL), +('WLTH', 'WLNO', 'Thermenregion', NULL), +('WLTT', 'WLNO', 'Traisental', NULL), +('WLWA', 'WLNO', 'Wachau', NULL), +('WLWG', 'WLNO', 'Wagram', NULL), +('WLWV', 'WLNO', 'Weinviertel', NULL), +('WLNS', 'WLBL', 'Neusiedlersee', NULL), +('WLLB', 'WLBL', 'Leithaberg', NULL), +('WLRO', 'WLBL', 'Rosalia', NULL), +('WLMB', 'WLBL', 'Mittelburgenland', NULL), +('WLEB', 'WLBL', 'Eisenberg', NULL);