@startuml

class sensor {
   Tabelle, die anzeigt, wann der Sensor das letzte mal gesendet hat
   und welche Messreihe gerade benutzt wird.
   ==
   #sens_name VARCHAR(64) -- must be unique in this table
   +last_update DATETIME -- when last message was received
   +meas_id INTEGER -- pointer to current measurement series
}


class meas_series {
  Metadaten für die Messreihen
  ==
  #meas_id INTEGER -- some serial, don't care
  + deployed DATETIME -- 2017-02-24 00:00
  ------
  + sens_name VARCHAR(64) -- e.g. s3333_0001_00_temp
  + unit VARCHAR(8) -- physical unit, e.g. degC
  + constrained VARCHAR(64) -- some programm code, that describes which values are valid
  + datatype VARCHAR(16) -- e.g. REAL
  ------
  + loc_name VARCHAR(64) -- where it was positioned
  + geolocation POINT -- position
  + description VARCHAR(64) -- comment
  ------
  + boardtype  VARCHAR(64) --
  + fw_version VARCHAR(64) --
  + channel    INT -- radio channel which was used
  ------
  + tbl_name VARCHAR(64) -- MUST BE UNIQUE, e.g. "s3333_0001_00_temp_201702240000"

}



class my_tbl_name {
  alle Messwerte für eine Messreihe
  ==
  # ts DATETIME -- time of data
  + value datatype -- datatype from meas_series record
  + invalid bool -- flag that marks measurement as invalid
}

class my_other_tbl_name {
  Messwerte für eine andere Messreihe
  ==
  # ts DATETIME -- time of data
  + value datatype -- datatype from meas_series record
  + invalid bool -- flag that marks measurement as invalid
}

sensor::meas_id --> meas_series::meas_id
meas_series::tbl_name --> my_tbl_name
meas_series::datatype --> my_tbl_name::value

my_tbl_name .. my_other_tbl_name

@enduml