Skip to content

Commit 0dcc577

Browse files
committed
Feat: Add new tables in Ingest DB an resolve fixes
1 parent 2f76de1 commit 0dcc577

2 files changed

Lines changed: 58 additions & 79 deletions

File tree

Ai4Birds.sql

Lines changed: 0 additions & 67 deletions
This file was deleted.

data/postgresIngestDB/init.sql

Lines changed: 58 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,51 @@
1+
-- Habilitar extensión para UUIDs
2+
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
3+
4+
-- Tabla de especies
15
CREATE TABLE IF NOT EXISTS species (
26
id SERIAL PRIMARY KEY,
37
comName VARCHAR(255) NOT NULL,
48
sciName VARCHAR(255) NOT NULL,
5-
CONSTRAINT species_comname_sciname_unique UNIQUE (comName, sciName) -- Restricción combinada
9+
CONSTRAINT species_comname_sciname_unique UNIQUE (comName, sciName)
610
);
711

12+
-- Observaciones
813
CREATE TABLE IF NOT EXISTS observation (
914
id SERIAL PRIMARY KEY,
1015
locationId VARCHAR(255),
1116
locationName VARCHAR(255),
12-
lat DECIMAL(9,6), -- Asumiendo una precisión adecuada para coordenadas geográficas
17+
lat DECIMAL(9,6),
1318
lng DECIMAL(9,6),
14-
date TIMESTAMP, -- Usa TIMESTAMP para almacenar tanto fecha como hora
19+
date TIMESTAMP,
1520
numObservation INT,
16-
speciesId INT NULL, -- Hacer opcional el speciesId
21+
speciesId INT NULL,
1722
CONSTRAINT fk_species
1823
FOREIGN KEY (speciesId)
1924
REFERENCES species(id)
20-
ON DELETE SET NULL
25+
ON DELETE SET NULL
2126
);
2227

28+
-- Grabaciones
2329
CREATE TABLE IF NOT EXISTS recording (
2430
id SERIAL PRIMARY KEY,
25-
recordingId VARCHAR(255) UNIQUE, -- Asegurarse de que recordingId sea único si se usa en lógicas de inserción condicionales
31+
recordingId VARCHAR(255) UNIQUE,
2632
location VARCHAR(255),
2733
quality VARCHAR(255),
2834
lat DECIMAL(9,6),
2935
lng DECIMAL(9,6),
3036
alt INT,
3137
file VARCHAR(255),
3238
fileName VARCHAR(255),
33-
time VARCHAR(255), -- Si es un timestamp, considerar cambiar el tipo a TIME o TIMESTAMP
39+
time VARCHAR(255),
3440
date TIMESTAMP,
35-
observationId INT NULL, -- Hacer opcional el observationId
41+
observationId INT NULL,
3642
CONSTRAINT fk_observation
3743
FOREIGN KEY (observationId)
3844
REFERENCES observation(id)
39-
ON DELETE SET NULL
45+
ON DELETE SET NULL
4046
);
4147

48+
-- Usuarios
4249
CREATE TABLE IF NOT EXISTS users (
4350
id SERIAL PRIMARY KEY,
4451
name VARCHAR(255) NOT NULL,
@@ -50,11 +57,50 @@ CREATE TABLE IF NOT EXISTS users (
5057
active BOOLEAN DEFAULT FALSE
5158
);
5259

60+
-- Estado del dispositivo
5361
CREATE TABLE IF NOT EXISTS device_status (
5462
id SERIAL PRIMARY KEY,
5563
gps_latitude DECIMAL(9,6) NOT NULL,
5664
gps_longitude DECIMAL(9,6) NOT NULL,
57-
status VARCHAR(255) NOT NULL, -- Estado del dispositivo
58-
storage_status DECIMAL(5,2) NOT NULL, -- Almacenamiento libre en GB, con dos decimales
59-
last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- Última vez que se recibió la actualización
65+
status VARCHAR(255) NOT NULL,
66+
storage_status DECIMAL(5,2) NOT NULL,
67+
last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP
68+
);
69+
70+
-- Estadísticas de aves
71+
CREATE TABLE IF NOT EXISTS bird_statistics (
72+
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
73+
camera_id VARCHAR NOT NULL,
74+
bird_name VARCHAR NOT NULL,
75+
count INT NOT NULL DEFAULT 1,
76+
last_seen TIMESTAMP NOT NULL DEFAULT now(),
77+
created_at TIMESTAMP NOT NULL DEFAULT now(),
78+
CONSTRAINT unique_camera_bird UNIQUE (camera_id, bird_name)
79+
);
80+
81+
-- Segmentos de datos
82+
CREATE TABLE IF NOT EXISTS segment_data (
83+
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
84+
camera_id VARCHAR,
85+
segment_idx INT,
86+
colatitude FLOAT,
87+
azimuth FLOAT,
88+
zoom_level INT,
89+
average_area FLOAT,
90+
total_big_birds INT,
91+
frames JSONB,
92+
received_at TIMESTAMP NOT NULL DEFAULT now(),
93+
CONSTRAINT fk_camera_segment
94+
FOREIGN KEY (camera_id)
95+
REFERENCES bird_statistics(camera_id)
96+
ON DELETE CASCADE
97+
);
98+
99+
-- Imágenes de mapas de calor
100+
CREATE TABLE IF NOT EXISTS heatmap_image (
101+
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
102+
camera_id VARCHAR,
103+
heatmap_for TEXT,
104+
image_url TEXT,
105+
generated_at TIMESTAMP NOT NULL DEFAULT now()
60106
);

0 commit comments

Comments
 (0)