Vielen Dank fuer Eure vielen Antworten.
Dann hast schon mal ein falsches DB-Model.
...
Du brauchst eine Tabelle mit id, timestamp, messgröße, messwert. Dann hast Du das Problem nicht.
Ok, also müsste ich in diesem Fall davon Abstand nehmen, Wasser und Futter in einer Tabellenzeile zu haben, sondern sie werden in getrennten Zeilen gespeichert?
Dann müsste ich als Primärschlüssel aber id, timestamp und messgröße nehmen, denn sowohl die Messgröße Futter wie Wasser werden zum gleichen Zeitpunkt erfasst.
Aber jetzt fällt mir ja ein, dass ich ja das gleiche Problem schon früher hatte, wo ich alle 20 Futterautomaten in einer Zeile erfassen wollte, ihr mir davon aber abgeraten hattet und mich deshalb auf den doppelten Primärschlüssel hingewiesen habt?
Sollte man sich das bei Datenbanken dann immer so merken - dass man die Daten, die nicht in einem Rutsch kommen, immer in einer separaten Zeile erfasst?
Wenn ja, so stell ich mir das aber vielleicht auch bei großen Datenmengen etwas problematisch vor. Würde ich es so speichern:
id, timestamp, wasser, futter - dann hab ich für einen Zyklus "nur" 4 Datenfelder. Sagen wir einfach mal, so eine Variable sei 32bit breit. Also hab ich dort jetzt 128 bit.
Bei der Variante:
id, timestamp, messwert, messgröße sind es auch vier Datenfelder, aber da es zwei Messwerte sind zweimal das Datenfeld - also 256 bit. Und wenn ich dann noch einen dritten Messwert hätte, dann kommt nicht immer nur ein neues Datenfeld hinzu, sondern gleich vier.
Also müsste ich dann - um dieses Problem zu umgehen - auf der Datenerfassungseite bereits dafür sorgen, dass die Daten soweit wie möglich gebündelt an die Datenbank gesendet werden?
Oder ginge das auch - dass z.B. MySQL prüft - wie viele Daten in der Tabelle drinnen sind - sagen wir mal z.B. 1000 Futterdaten, dass dann die Daten in einer neuen Tabelle zu einer mehrspaltigen Tabelle zusammengefasst werden?