Files
qt5-legatus-legacy/Lts/Tools/DBUpdate/updates/guez/2.54_ppm_silhouette.upd
T
2026-08-13 18:33:10 +02:00

111 lines
5.1 KiB
Plaintext
Executable File

-- $Id$
-- $HeadURL$
-- $Author$
-------------------------------------------------------------------------
-- INFO: Tables ppm_silhouette und target_information
-- PROJECT: Guez
-- DATE: 2023-07-31
-- VERSION: 2.54
-------------------------------------------------------------------------
-- GLOBAL: PPM;
BEGIN;
ALTER TABLE IF EXISTS ppm_silhouette DROP CONSTRAINT IF EXISTS PK_ppm_silhouette_id CASCADE;
ALTER TABLE IF EXISTS ppm_silhouette_id_mapping DROP CONSTRAINT IF EXISTS PK_ppm_silhouette_id_mapping_id CASCADE;
ALTER TABLE IF EXISTS ppm_target_information DROP CONSTRAINT IF EXISTS PK_ppm_target_information_id CASCADE;
ALTER TABLE IF EXISTS ppm_target_information DROP CONSTRAINT IF EXISTS FK_ppm_target_information_participant_id_ppm_participant_id CASCADE;
DROP TABLE IF EXISTS ppm_silhouette CASCADE;
DROP TABLE IF EXISTS ppm_silhouette_id_mapping CASCADE;
DROP TABLE IF EXISTS ppm_target_information CASCADE;
CREATE TABLE IF NOT EXISTS ppm_silhouette (
id integer DEFAULT nextval(( 'ppm.ppm_silhouette_id_seq'::text)::regclass),
sil_id integer,
name text,
points jsonb,
svg text,
properties jsonb,
rhaValue integer
);
CREATE TABLE IF NOT EXISTS ppm_silhouette_id_mapping (
id integer DEFAULT nextval(( 'ppm.ppm_silhouette_id_mapping_id_seq'::text)::regclass),
tetra_id integer
);
COMMENT ON TABLE ppm_silhouette_id_mapping IS 'Mapping from intern silhouetteIds to extern Tetra silhouetteIds';
CREATE TABLE IF NOT EXISTS ppm_target_information (
id integer DEFAULT nextval(( 'ppm.ppm_target_information_id_seq'::text)::regclass),
participant_id integer,
pre_warning_interval integer,
pre_warning_effect integer,
pre_warning_flash_after_expiration boolean,
take_down_interval integer,
take_down_effect integer,
take_donw_flash_after_expiration boolean,
silhouette_id integer,
areas jsonb,
properties jsonb
);
CREATE SEQUENCE IF NOT EXISTS ppm_silhouette_id_seq INCREMENT 1 START 1 MINVALUE 1;
CREATE SEQUENCE IF NOT EXISTS ppm_silhouette_id_mapping_id_seq INCREMENT 1 START 1 MINVALUE 1;
CREATE SEQUENCE IF NOT EXISTS ppm_target_information_id_seq INCREMENT 1 START 1 MINVALUE 1;
ALTER TABLE IF EXISTS ppm_silhouette ADD CONSTRAINT PK_ppm_silhouette_id PRIMARY KEY (id);
ALTER TABLE IF EXISTS ppm_silhouette_id_mapping ADD CONSTRAINT PK_ppm_silhouette_id_mapping_id PRIMARY KEY (id);
ALTER TABLE IF EXISTS ppm_target_information ADD CONSTRAINT PK_ppm_target_information_id PRIMARY KEY (id);
ALTER TABLE ppm_target_information ADD CONSTRAINT FK_ppm_target_information_participant_id_ppm_participant_id
FOREIGN KEY (participant_id) REFERENCES ppm_participant (id) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;
-- EXERCISE: ALL;
BEGIN;
ALTER TABLE IF EXISTS rec_target_information DROP CONSTRAINT IF EXISTS PK_rec_target_information_rec_id CASCADE;
ALTER TABLE IF EXISTS rec_target_information DROP CONSTRAINT IF EXISTS IDX_rec_target_information_sample_time CASCADE;
ALTER TABLE IF EXISTS ppm_target_information DROP CONSTRAINT IF EXISTS PK_ppm_target_information_id CASCADE;
ALTER TABLE IF EXISTS ppm_target_information DROP CONSTRAINT IF EXISTS FK_ppm_target_information_participant_id_ppm_participant_id CASCADE;
ALTER TABLE IF EXISTS rec_target_information DROP CONSTRAINT IF EXISTS PK_rec_target_information_rec_id CASCADE;
ALTER TABLE IF EXISTS rec_target_information DROP CONSTRAINT IF EXISTS IDX_rec_target_information_sample_time CASCADE;
DROP TABLE IF EXISTS ppm_target_information CASCADE;
DROP TABLE IF EXISTS rec_target_information CASCADE;
CREATE TABLE IF NOT EXISTS ppm_target_information (
id integer DEFAULT nextval(( 'ppm_target_information_id_seq'::text)::regclass),
participant_id integer,
pre_warning_interval integer,
pre_warning_effect integer,
take_down_interval integer,
take_down_effect integer,
silhouette_id integer,
properties jsonb
);
CREATE TABLE IF NOT EXISTS rec_target_information (
id integer,
participant_id integer,
sample_time bigint,
prewarning_interval integer,
prewarning_effect integer,
takedown_interval integer,
takedown_effect integer,
silhouette integer,
shootback_areas jsonb,
rec_id bigint DEFAULT nextval(( 'rec_target_information_rec_id_seq'::text)::regclass),
dds_is_alive boolean DEFAULT true,
insert_time bigint DEFAULT (extract(epoch from now()) * 1000)
);
CREATE SEQUENCE IF NOT EXISTS rec_target_information_rec_id_seq INCREMENT 1 START 1 MINVALUE 1;
ALTER TABLE IF EXISTS rec_target_information ADD CONSTRAINT PK_rec_target_information_rec_id PRIMARY KEY (rec_id);
CREATE INDEX IDX_rec_target_information_sample_time ON rec_target_information (sample_time);
ALTER TABLE ppm_target_information ADD CONSTRAINT FK_ppm_target_information_participant_id_ppm_participant_id
FOREIGN KEY (participant_id) REFERENCES ppm_participant (id) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;