Update database schema

This commit is contained in:
2023-04-14 20:39:04 +02:00
parent 28ce38779c
commit d5c8c224df
4 changed files with 142 additions and 40 deletions

View File

@ -359,7 +359,6 @@ CREATE TABLE area_commitment (
area INTEGER NOT NULL,
sortid TEXT NOT NULL,
attrid TEXT,
cultid TEXT NOT NULL,
CONSTRAINT pk_area_commitment PRIMARY KEY (vnr, kgnr, gstnr),
@ -369,9 +368,6 @@ CREATE TABLE area_commitment (
CONSTRAINT fk_area_commitment_wine_variety FOREIGN KEY (sortid) REFERENCES wine_variety (sortid)
ON UPDATE CASCADE
ON DELETE RESTRICT,
CONSTRAINT fk_area_commitment_wine_attribute FOREIGN KEY (attrid) REFERENCES wine_attribute (attrid)
ON UPDATE CASCADE
ON DELETE RESTRICT,
CONSTRAINT fk_area_commitment_wine_cultivation FOREIGN KEY (cultid) REFERENCES wine_cultivation (cultid)
ON UPDATE CASCADE
ON DELETE RESTRICT,
@ -380,6 +376,21 @@ CREATE TABLE area_commitment (
ON DELETE RESTRICT
) STRICT;
CREATE TABLE area_commitment_attribute (
vnr INTEGER NOT NULL,
kgnr INTEGER NOT NULL,
gstnr TEXT NOT NULL,
attrid TEXT NOT NULL,
CONSTRAINT pk_area_commitment_attribute PRIMARY KEY (vnr, kgnr, gstnr, attrid),
CONSTRAINT fk_area_commitment_attribute_area_commitment FOREIGN KEY (vnr, kgnr, gstnr) REFERENCES area_commitment (vnr, kgnr, gstnr)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT fk_area_commitment_attribute_wine_attribute FOREIGN KEY (attrid) REFERENCES wine_attribute (attrid)
ON UPDATE CASCADE
ON DELETE RESTRICT
) STRICT;
----------------------------------------------------------------
@ -400,7 +411,7 @@ CREATE TABLE season (
CREATE TABLE modifier (
year INTEGER NOT NULL,
mnr INTEGER NOT NULL,
modid TEXT NOT NULL CHECK (modid REGEXP '^[A-Z]+$'),
name TEXT NOT NULL,
abs INTEGER,
@ -409,7 +420,7 @@ CREATE TABLE modifier (
standard INTEGER NOT NULL CHECK (standard IN (TRUE, FALSE)),
quick_select INTEGER NOT NULL CHECK (quick_select IN (TRUE, FALSE)),
CONSTRAINT pk_modifier PRIMARY KEY (year, mnr),
CONSTRAINT pk_modifier PRIMARY KEY (year, modid),
CONSTRAINT fk_modifier_season FOREIGN KEY (year) REFERENCES season (year)
ON UPDATE CASCADE
ON DELETE CASCADE,
@ -459,8 +470,6 @@ CREATE TABLE delivery_part (
dpnr INTEGER NOT NULL,
sortid TEXT NOT NULL,
attrid TEXT DEFAULT NULL,
weight INTEGER NOT NULL,
kmw REAL NOT NULL,
qualid TEXT NOT NULL,
@ -474,7 +483,7 @@ CREATE TABLE delivery_part (
spl_check INTEGER NOT NULL CHECK (spl_check IN (TRUE, FALSE)) DEFAULT FALSE,
hand_picked INTEGER CHECK (hand_picked IN (TRUE, FALSE)) DEFAULT NULL,
lesemaschine INTEGER CHECK (lesemaschine IN (True, FALSE)) DEFAULT NULL,
lesewagen INTEGER CHECK (lesewagen IN (True, FALSE)) DEFAULT NULL,
temperature REAL DEFAULT NULL,
acid REAL DEFAULT NULL,
@ -491,9 +500,6 @@ CREATE TABLE delivery_part (
CONSTRAINT fk_delivery_part_wine_variety FOREIGN KEY (sortid) REFERENCES wine_variety (sortid)
ON UPDATE CASCADE
ON DELETE RESTRICT,
CONSTRAINT fk_delivery_part_wine_attribute FOREIGN KEY (attrid) REFERENCES wine_attribute (attrid)
ON UPDATE CASCADE
ON DELETE RESTRICT,
CONSTRAINT fk_delivery_part_wine_quality FOREIGN KEY (qualid) REFERENCES wine_quality (qualid)
ON UPDATE CASCADE
ON DELETE RESTRICT,
@ -534,17 +540,32 @@ BEGIN
) WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr);
END;
CREATE TABLE delivery_part_modifier (
year INTEGER NOT NULL,
did INTEGER NOT NULL,
dpnr INTEGER NOT NULL,
mnr INTEGER NOT NULL,
CREATE TABLE delivery_part_attribute (
year INTEGER NOT NULL,
did INTEGER NOT NULL,
dpnr INTEGER NOT NULL,
attrid TEXT NOT NULL,
CONSTRAINT pk_delivery_part_modifier PRIMARY KEY (year, did, dpnr, mnr),
CONSTRAINT pk_delivery_part_attribute PRIMARY KEY (year, did, dpnr, attrid),
CONSTRAINT fk_delivery_part_attribute_delivery_part FOREIGN KEY (year, did, dpnr) REFERENCES delivery_part (year, did, dpnr)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT fk_delivery_part_attribute_wine_attribute FOREIGN KEY (attrid) REFERENCES wine_attribute (attrid)
ON UPDATE CASCADE
ON DELETE RESTRICT
) STRICT;
CREATE TABLE delivery_part_modifier (
year INTEGER NOT NULL,
did INTEGER NOT NULL,
dpnr INTEGER NOT NULL,
modid TEXT NOT NULL,
CONSTRAINT pk_delivery_part_modifier PRIMARY KEY (year, did, dpnr, modid),
CONSTRAINT fk_delivery_part_modifier_delivery_part FOREIGN KEY (year, did, dpnr) REFERENCES delivery_part (year, did, dpnr)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT fk_delivery_part_modifier_modifier FOREIGN KEY (year, mnr) REFERENCES modifier (year, mnr)
CONSTRAINT fk_delivery_part_modifier_modifier FOREIGN KEY (year, modid) REFERENCES modifier (year, modid)
ON UPDATE CASCADE
ON DELETE RESTRICT
) STRICT;