diff --git a/README.md b/README.md index 45cc2b3..976f2d3 100644 --- a/README.md +++ b/README.md @@ -28,3 +28,8 @@ https://www.fma.gv.at/banken/ * WPF * LINQ * SQLite + + +# Links + +[PLZ](https://www.post.at/g/c/postlexikon) diff --git a/herkunft.md b/herkunft.md new file mode 100644 index 0000000..7a3c376 --- /dev/null +++ b/herkunft.md @@ -0,0 +1,40 @@ + +# Herkunft + +[Kürzelliste für Weinformulare - Bundeskellereiinspektion](https://www.bundeskellereiinspektion.at/downloads/allgemein/kuerzel.pdf) + +[Weinbau in Österreich - Wikipedia](https://de.wikipedia.org/wiki/Weinbau_in_%C3%96sterreich#Weinbaugebiete_in_%C3%96sterreich) + +``` +AUSL - Ausland +EUXX - Verschnitt von mehreren Weinen der EU +OEST - Österreich + BLXX - Bergland + BLKA - Kärnten + BLOO - Oberösterreich + BLSB - Salzburg + BLTI - Tirol + BLVO - Vorarlberg + SLXX - Steirerland + SLST - Steiermark + SLSS - Südsteiermark + SLVL - Vulkanland Steiermark + SLWS - Weststeiermark + WLXX - Weinland + WIEN - Wien + WLNO - Niederösterreich + WLCA - Carnuntum + WLKA - Kamptal + WLKT - Kremstal + WLTH - Thermenregion + WLTT - Traisental + WLWA - Wachau + WLWG - Wagram + WLWV - Weinviertel + WLBL - Burgenland + WLNS - Neusiedlersee + WLLB - Leithaberg + WLRO - Rosalia + WLMB - Mittelburgenland + WLEB - Eisenberg +``` diff --git a/sql/base.sql b/sql/base.sql new file mode 100644 index 0000000..3b12e8e --- /dev/null +++ b/sql/base.sql @@ -0,0 +1,72 @@ + +CREATE TABLE country ( + alpha2 TEXT NOT NULL CHECK(LENGTH(alpha2) = 2), + alpha3 TEXT NOT NULL CHECK(LENGTH(alpha3) = 3), + num INTEGER NOT NULL CHECK(num >= 0), + name TEXT NOT NULL, + + is_visible INTEGER NOT NULL CHECK(is_visible = TRUE OR is_visible = FALSE) DEFAULT TRUE, + + CONSTRAINT pk_country PRIMARY KEY (alpha2), + CONSTRAINT sk_country_alpha3 UNIQUE (alpha3), + CONSTRAINT sk_country_numeric UNIQUE (num), + CONSTRAINT sk_country_name UNIQUE (name) +) STRICT; + +CREATE TABLE AT_bundesland ( + id INTEGER NOT NULL CHECK(id >= 0), + short1 TEXT NOT NULL, + short2 TEXT, + name TEXT NOT NULL, + + CONSTRAINT pk_AT_bundesland PRIMARY KEY (id), + CONSTRAINT sk_AT_bundesland_short1 UNIQUE (short1), + CONSTRAINT sk_AT_bundesland_short2 UNIQUE (short2), + CONSTRAINT sk_AT_bundesland_name UNIQUE (name) +) STRICT; + +CREATE TABLE AT_gemeinde ( + gkz INTEGER NOT NULL CHECK(gkz >= 10000 AND gkz <= 99999), + land_id INTEGER NOT NULL CHECK(land_id = gkz / 10000), + name TEXT NOT NULL, + + CONSTRAINT pk_AT_gemeinde PRIMARY KEY (gkz), + CONSTRAINT fk_AT_gemeinde_AT_bundesland FOREIGN KEY (land_id) REFERENCES AT_bundesland (id) +) STRICT; + +CREATE TABLE AT_ort ( + okz INTEGER NOT NULL CHECK(okz > 0), + gkz INTEGER NOT NULL, + name TEXT NOT NULL, + + CONSTRAINT pk_AT_ort PRIMARY KEY (okz), + CONSTRAINT fk_AT_ort_AT_gemeinde FOREIGN KEY (gkz) REFERENCES AT_gemeinde (gkz) +) STRICT; + +CREATE TABLE AT_plz ( + plz INTEGER NOT NULL CHECK(plz >= 1000 AND plz <= 9999), + okz INTEGER NOT NULL, + name TEXT NOT NULL, + + CONSTRAINT pk_AT_plz PRIMARY KEY (plz, okz), + CONSTRAINT fk_AT_plz_AT_ort FOREIGN KEY (okz) REFERENCES AT_ort (okz) +) STRICT; + + +INSERT INTO country VALUES +('AT', 'AUT', 40, 'Österreich', TRUE), +('DE', 'DEU', 276, 'Deutschland', FALSE), +('CZ', 'CZE', 203, 'Tschechien', FALSE), +('HU', 'HUN', 348, 'Ungarn', FALSE), +('SK', 'SVK', 703, 'Slowakei', FALSE); + +INSERT INTO AT_bundesland VALUES +(1, 'B', 'Bgld.', 'Burgenland'), +(2, 'K', 'Ktn.', 'Kärnten'), +(3, 'N', 'NÖ', 'Niederösterreich'), +(4, 'O', 'OÖ', 'Oberösterreich'), +(5, 'S', 'Sbg.', 'Salzburg'), +(6, 'St', 'Stmk.', 'Steiermark'), +(7, 'T', NULL, 'Tirol'), +(8, 'V', 'Vbg.', 'Vorarlberg'), +(9, 'W', NULL, 'Wien');