37 lines
943 B
SQL
37 lines
943 B
SQL
create type sensor_type as enum (
|
|
'temperature',
|
|
'humidity',
|
|
'carbon_dioxide',
|
|
'pressure',
|
|
'proximity',
|
|
'light'
|
|
);
|
|
|
|
create table sensors
|
|
(
|
|
sensor_id varchar(255) primary key,
|
|
|
|
sensor_type sensor_type not null,
|
|
sampling_interval int not null default 3600,
|
|
|
|
threshold_above float not null default 100,
|
|
threshold_below float not null default 0,
|
|
|
|
created_at timestamp not null default now(),
|
|
updated_at timestamp not null default now()
|
|
);
|
|
|
|
create index idx_sensors_sensor_id on sensors (sensor_id);
|
|
|
|
create table registry
|
|
(
|
|
sensor_id varchar(255) not null references sensors (sensor_id),
|
|
|
|
value float not null,
|
|
created_at timestamp not null default now()
|
|
)
|
|
with (
|
|
timescaledb.hypertable,
|
|
timescaledb.partition_column = 'created_at',
|
|
timescaledb.segmentby = 'sensor_id'
|
|
); |