2010-12-11 9 views
0

Wenn ich die Daten jede Sekunde speichern, wird die Datenbank schnell wachsen. Ich brauche weniger Details von Messungen von ein paar Wochen/Monaten zurück. Ein Durchschnitt wäre genug. Ich habe 5 Sensoren: Windgeschwindigkeit, Windrichtung, Temperatur, Licht und Regen. Wie würde ich meine Datenbank gestalten?Wetterstation Datenbank-Design, erhalten jede Sekunde Sensordaten

+0

Sind das Hausaufgaben? Kein Problem, bei den Hausaufgaben helfen, aber wenn es ist, werden Sie besser tun, wenn Sie zeigen, was Sie bisher haben und fragen Sie nach einer Überprüfung dieser oder bestimmter Fragen zu Aspekten. Die Hausaufgaben sind zu deinem Vorteil. – Richard

+0

Sie können mehr Hilfe erhalten, wenn Sie einen Entwurf posten, an dem Sie gearbeitet haben, und ihn bitten, ihn zu überprüfen, anstatt nur andere zu bitten, die Arbeit für Sie zu erledigen. – Tony

Antwort

0

Nun, ich würde eine Tabelle für die aktuellen Daten und dann Tabellen mit aggregierten Daten entwerfen. Von Zeit zu Zeit (vielleicht bei einem wöchentlichen/wöchentlichen/monatlichen Lauf) würde ich die Daten aggregieren, sie in die Tabellen schreiben und sie aus den aktuellen Daten löschen.

Ich hätte genau die gleiche Tabelle (Felder: Mess-ID, Windgeschwindigkeit, Windrichtung, Temperatur, Licht und Regen, Zeitstempel) für jede Aggregationsstufe, die ich brauche.

  1. measurements_weekly
  2. measurements_daily_average
  3. measurements_weekly_average
  4. measurements_monthly_average
  5. measurements_yearly_average

Dies hat mehrere Vorteile: Die Daten separat verwaltet werden können (Backup/ausführliche Berichte etc.). Sie benötigen nur ein Aggregationsverfahren für alle Aggregationsebenen und führen es mit verschiedenen Zeitspannen und Tabellen als Argumente aus. Abfragen auf jeder Tabelle und somit Analyse werden schnell und performant sein. Wenn Sie die scheinbar redundanten Strukturen nicht mögen, können auch zwei Tabellen ausreichen: eine für die Messungen und eine für die aggregierten Messungen, die dann eine Zeitspanne einschließen müssen. Aber dieser Ansatz führt zu Komplexität bei Ihren Aggregationsroutinen und bei jeder Analyse, daher würde ich sie nicht verwenden.