-- $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;