Update to data state 10-2025

This commit is contained in:
Jan 2025-11-02 19:17:05 +01:00
parent 015b0d0f93
commit 10cc6bc5f0
3 changed files with 520 additions and 164 deletions

View file

@ -73,8 +73,7 @@ create table if not exists `measure`
create table if not exists `measure_action` create table if not exists `measure_action`
( (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
measure_action_code CHAR(2), measure_action_code CHAR(2)
CONSTRAINT UC_MeasureAction UNIQUE (measure_action_code)
); );
-- geo -- geo
@ -83,8 +82,7 @@ create table if not exists `geo`
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
iso_3166_code CHAR(2), iso_3166_code CHAR(2),
start_date DATE, start_date DATE,
end_date DATE, end_date DATE
CONSTRAINT UC_IsoCode UNIQUE (iso_3166_code)
); );
create table if not exists `geo_group` create table if not exists `geo_group`
@ -93,8 +91,7 @@ create table if not exists `geo_group`
geo_group_code CHAR(4), geo_group_code CHAR(4),
abbr TEXT, abbr TEXT,
start_date DATE, start_date DATE,
end_date DATE, end_date DATE
CONSTRAINT UC_GroupCode UNIQUE (geo_group_code)
); );
create table if not exists `geo_group_membership` create table if not exists `geo_group_membership`
@ -105,8 +102,7 @@ create table if not exists `geo_group_membership`
start_date DATE, start_date DATE,
end_date DATE, end_date DATE,
FOREIGN KEY (geo_id) REFERENCES geo(id), FOREIGN KEY (geo_id) REFERENCES geo(id),
FOREIGN KEY (geo_group_id) REFERENCES geo_group(id), FOREIGN KEY (geo_group_id) REFERENCES geo_group(id)
CONSTRAINT UC_GeoGroupTuple UNIQUE (geo_id, geo_group_id)
); );
-- nomenclature -- nomenclature
@ -138,8 +134,7 @@ create table if not exists `additional_code`
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
additional_code CHAR(4), additional_code CHAR(4),
start_date DATE, start_date DATE,
end_date DATE, end_date DATE
CONSTRAINT UC_AdditionalCode UNIQUE (additional_code)
); );
-- import, applied_measures -- import, applied_measures
@ -177,6 +172,8 @@ create table if not exists `measure_footnote`
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
footnote_id INT NOT NULL, footnote_id INT NOT NULL,
applied_measure_id INT NOT NULL, applied_measure_id INT NOT NULL,
start_date DATE DEFAULT NULL,
end_date DATE DEFAULT NULL,
FOREIGN KEY (footnote_id) REFERENCES footnote(id), FOREIGN KEY (footnote_id) REFERENCES footnote(id),
FOREIGN KEY (applied_measure_id) REFERENCES applied_measure(id) FOREIGN KEY (applied_measure_id) REFERENCES applied_measure(id)
); );
@ -192,6 +189,8 @@ create table if not exists `applied_measure_condition`
certificate_id INT DEFAULT NULL, certificate_id INT DEFAULT NULL,
condition_type_id INT NOT NULL, condition_type_id INT NOT NULL,
amount TEXT, amount TEXT,
start_date DATE DEFAULT NULL,
end_date DATE DEFAULT NULL,
FOREIGN KEY (applied_measure_id) REFERENCES applied_measure(id), FOREIGN KEY (applied_measure_id) REFERENCES applied_measure(id),
FOREIGN KEY (measure_action_id) REFERENCES measure_action(id), FOREIGN KEY (measure_action_id) REFERENCES measure_action(id),
FOREIGN KEY (monetary_unit_id) REFERENCES monetary_unit(id), FOREIGN KEY (monetary_unit_id) REFERENCES monetary_unit(id),
@ -205,6 +204,8 @@ create table if not exists `measure_exclusion`
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
geo_id INT NOT NULL, geo_id INT NOT NULL,
applied_measure_id INT NOT NULL, applied_measure_id INT NOT NULL,
start_date DATE DEFAULT NULL,
end_date DATE DEFAULT NULL,
FOREIGN KEY (geo_id) REFERENCES geo(id), FOREIGN KEY (geo_id) REFERENCES geo(id),
FOREIGN KEY (applied_measure_id) REFERENCES applied_measure(id) FOREIGN KEY (applied_measure_id) REFERENCES applied_measure(id)
); );

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,345 @@
-- meta tables, like units and certificates
create table if not exists `legal_base`
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`legal_base` VARCHAR(255),
`journal` VARCHAR(255),
`page` INT,
`date` DATE
);
create table if not exists `monetary_unit`
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`monetary_unit_code` CHAR(3)
);
create table if not exists `unit`
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`unit_code` CHAR(3),
`unit_qualifier` CHAR(1),
`label` TEXT
);
create table if not exists `certificate_type`
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`certificate_type_code` CHAR(1)
);
create table if not exists `condition_type`
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`condition_type_code` CHAR(2)
);
create table if not exists `certificate`
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`certificate_code` CHAR(4),
`certificate_type_id` INT NOT NULL,
`start_date` DATE,
`end_date` DATE,
FOREIGN KEY (certificate_type_id) REFERENCES certificate_type(id)
);
-- measure meta infos
create table if not exists `footnote`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
footnote CHAR(8),
start_date DATE,
end_date DATE
);
create table if not exists `measure_series`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
measure_series_code CHAR(1)
);
create table if not exists `measure`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
measure_series_id INT NOT NULL,
measure_code CHAR(3),
short_desc TEXT,
tm_code TINYINT,
start_date DATE,
FOREIGN KEY (measure_series_id) REFERENCES measure_series(id)
);
create table if not exists `measure_action`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
measure_action_code CHAR(2)
);
-- geo
create table if not exists `geo`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
iso_3166_code CHAR(2),
start_date DATE,
end_date DATE
);
create table if not exists `geo_group`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
geo_group_code CHAR(4),
abbr TEXT,
start_date DATE,
end_date DATE
);
create table if not exists `geo_group_membership`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
geo_id INT NOT NULL,
geo_group_id INT NOT NULL,
start_date DATE,
end_date DATE,
FOREIGN KEY (geo_id) REFERENCES geo(id),
FOREIGN KEY (geo_group_id) REFERENCES geo_group(id)
);
-- nomenclature
create table if not exists `nomenclature`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
hscode CHAR(10),
suffix CHAR(2),
hierachy TINYINT,
indent TINYINT,
start_date DATE,
end_date DATE,
is_leaf BOOLEAN,
is_leaf_start_date DATE,
parent_id INT NULL -- TODO: for each child do: alter table nomenclature add constraint parent_nomenclature foreign key (parent_id) references nomenclature(id) on delete set null;
);
create table if not exists `nomenclature_footnote`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
footnote_id INT NOT NULL,
nomenclature_id INT NOT NULL,
FOREIGN KEY (footnote_id) REFERENCES footnote(id),
FOREIGN KEY (nomenclature_id) REFERENCES nomenclature(id)
);
create table if not exists `additional_code`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
additional_code CHAR(4),
start_date DATE,
end_date DATE
);
-- import, applied_measures
create table if not exists `import`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
nomenclature_id INT NOT NULL,
additional_code_id INT DEFAULT NULL,
geo_id INT DEFAULT NULL,
geo_group_id INT DEFAULT NULL,
FOREIGN KEY (nomenclature_id) REFERENCES nomenclature(id),
FOREIGN KEY (additional_code_id) REFERENCES additional_code(id),
FOREIGN KEY (geo_id) REFERENCES geo(id),
FOREIGN KEY (geo_group_id) REFERENCES geo_group(id)
);
create table if not exists `applied_measure`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
import_id INT NOT NULL,
measure_id INT NOT NULL,
legal_base_id INT DEFAULT NULL,
legal_base TEXT DEFAULT NULL,
start_date DATE DEFAULT NULL,
end_date DATE DEFAULT NULL,
amount TEXT DEFAULT NULL,
order_number INT DEFAULT NULL,
FOREIGN KEY (import_id) REFERENCES import(id),
FOREIGN KEY (measure_id) REFERENCES measure(id),
FOREIGN KEY (legal_base_id) REFERENCES legal_base(id)
);
create table if not exists `measure_footnote`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
footnote_id INT NOT NULL,
applied_measure_id INT NOT NULL,
start_date DATE DEFAULT NULL,
end_date DATE DEFAULT NULL,
FOREIGN KEY (footnote_id) REFERENCES footnote(id),
FOREIGN KEY (applied_measure_id) REFERENCES applied_measure(id)
);
create table if not exists `applied_measure_condition`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
sequence_no INT DEFAULT NULL,
applied_measure_id INT NOT NULL,
measure_action_id INT NOT NULL,
monetary_unit_id INT DEFAULT NULL,
unit_id INT DEFAULT NULL,
certificate_id INT DEFAULT NULL,
condition_type_id INT NOT NULL,
amount TEXT,
start_date DATE DEFAULT NULL,
end_date DATE DEFAULT NULL,
FOREIGN KEY (applied_measure_id) REFERENCES applied_measure(id),
FOREIGN KEY (measure_action_id) REFERENCES measure_action(id),
FOREIGN KEY (monetary_unit_id) REFERENCES monetary_unit(id),
FOREIGN KEY (unit_id) REFERENCES unit(id),
FOREIGN KEY (certificate_id) REFERENCES certificate(id),
FOREIGN KEY (condition_type_id) REFERENCES condition_type(id)
);
create table if not exists `measure_exclusion`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
geo_id INT NOT NULL,
applied_measure_id INT NOT NULL,
start_date DATE DEFAULT NULL,
end_date DATE DEFAULT NULL,
FOREIGN KEY (geo_id) REFERENCES geo(id),
FOREIGN KEY (applied_measure_id) REFERENCES applied_measure(id)
);
-- descriptions
create table if not exists `footnotes_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES footnote(id)
);
create table if not exists `measure_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES measure(id)
);
create table if not exists `measure_series_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES measure_series(id)
);
create table if not exists `measure_action_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES measure_action(id)
);
create table if not exists `geo_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES geo(id)
);
create table if not exists `geo_group_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES geo_group(id)
);
create table if not exists `monetary_unit_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES monetary_unit(id)
);
create table if not exists `unit_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES unit(id)
);
create table if not exists `certificate_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES certificate(id)
);
create table if not exists `certificate_type_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES certificate_type(id)
);
create table if not exists `condition_type_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES condition_type(id)
);
create table if not exists `additional_code_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES additional_code(id)
);
create table if not exists `nomenclature_desc`
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ref_id INT NOT NULL,
lang CHAR(2),
`desc` TEXT,
desc_start_date DATE,
FOREIGN KEY (ref_id) REFERENCES nomenclature(id)
);