Ver Mensaje Individual
  #23  
Antiguo 24-02-2008
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Reputación: 21
Angel Fernández Va por buen camino
Mi idea ahora mismo es la siguiente, componiendo en mi cabeza todo lo que me estáis diciendo:

Tabla Humedad y Temperatura
---------------------------
Dado que el tipo de dato que almacenan es parecido (rango 0-100 y 0-400 respectivamente) y los datos de H y T se estudian conjuntamente, los junto los dos en una sola tabla.
Campos
ID (bigint como me dice jachguate) IDPROYECTO (smallint) IDSENSOR (integer) FECHA (date) HORA (time) FECHAYHORA(timestamp según apunta Lepe) DATO (smallint)

IDPROYECTO enlazará con una tabla donde se indique descripción del proyecto y otros datos
IDSENSOR enlazará con la tabla de sensores

Tabla sensores
--------------
IDSENSOR TIPO(HUM, TEM, LLU, ENC) UBICACION

Tabla Lluvia y Encharcamiento
------------------------------
Por el mismo motivo junto lluvia y encharcamiento.
Campos:
ID IDPROYECTO IDSENSOR FECHA HORA FECHAYHORA DATO(true/false)

El tipo de consulta que quiero realizar, al menos para temperatura y humedad, es datos agrupados por hora para realizar gráficas. En código sql (más o menos, lo escribo de cabeza)

Código SQL [-]
select idsensor, extract(year from FECHAYHORA) as anyo, extract(month from FECHAYHORA) as mes,
extract(day from FECHAYHORA) as dia, extract(hour from FECHAYHORA) as hora,  count(DATO) as cont, min(DATO) as Minimo, max(DATO) as Maximo,
avg(DATO) as Media
from tabla1
group by idsensor, anyo, mes, dia, hora
order by idsensor, anyo, mes, dia, hora

En cambio lo de lluvia y encharcamiento no sé muy bien qué quiere el cliente (será objeto de un próximo encuentro) pero lo que comentaba Delphius me ha hecho pensar mucho. Aquí en Valencia (España) donde yo vivo, podemos tirarnos meses sin llover. ¿Para qué guardar un dato de lluvia cada minuto que sea false, false, false,... durante meses? Y lo mismo para encharcamiento.

Tendremos que definir qué queremos hacer con esos datos (quizá una consulta por mes sea suficiente) o tal vez sea para activar alguna alarma si hay encharcamiento. En este último caso, un dato cada 10 minutos como mucho sea suficiente.

De lo que me comentáis me surgen algunas dudas. ¿Las consultas las puedo hacer cada vez que las necesite o mejor guardarlas en tablas como me dice jachguate? ¿Si tengo un campo FECHAYHORA (timestamp), necesito también FECHA (date) y HORA (time), como dice Lepe, para hacer mejor las consultas por SQL?

Gracias a todos por vuestra dedicación.

Saludos.
Responder Con Cita