Physikbuddha
Lt. Commander
- Registriert
- Aug. 2014
- Beiträge
- 1.058
Hallo SQL-Fans,
ich sitze gerade an einer Android-App für eine Zählerdatenerfassung.
Die App verwendet eine SQLite-Datenbank, an der ich gerade wieder bastle. Ich bin jedoch nicht wirklich 100 % zufrieden damit, da ich, wie im Titel angedeutet, eine zyklische Datenstruktur habe.
So sieht das ganze zurzeit aus:
Folgendes zur Erklärung:
Und bei dieser ganzen logischen Datenstruktur fällt es mir schwer, diesen Kreis aufzuheben.
Hat jemand von euch ein paar gute Tipps dazu und kann mir Feedback zu dieser DB geben?
Es grüßt,
der Physikbuddha
ich sitze gerade an einer Android-App für eine Zählerdatenerfassung.
Die App verwendet eine SQLite-Datenbank, an der ich gerade wieder bastle. Ich bin jedoch nicht wirklich 100 % zufrieden damit, da ich, wie im Titel angedeutet, eine zyklische Datenstruktur habe.
So sieht das ganze zurzeit aus:
Folgendes zur Erklärung:
- Die Tabellen "Zähler" und "Ablesewert" sind mehr oder weniger fixe Tabellen. Sie sind sozusagen Listen über die tatsächlich vorhandenen Geräte. Ein "Zähler" ist dabei das eigentliche Stück Hardware. Der Zähler kann mehrere verschiedene Werte haben, die abgelesen werden müssen. (Tabelle "Ablesewert" - der Name ist Mist, hat jemand bessere Vorschläge?)
Bei einem Gaszähler gibt es nur einen: den Gasverbrauch. Bei einem Stromzähler wiederum zum Beispiel gibt es verschiedene Werte, da Hoch- und Niedertarif, sowie Wirk- und Blindleistung unterschieden werden. Ein Tank hat Werte wie "Füllstand" und "Lieferung". - Ein Element der Tabelle "Ablesebogen" wird einmal pro Tag erstellt (Spalte Datum ist UNIQUE), spiegelt also den tatsächlichen Rundgang wieder.
- Für jeden Zähler der nun abgelesen wird, wird ein Element der Tabelle "Ablesung" erzeugt. Das ist wichtig, da ich wissen muss, welche Zähler tatsächlich besucht wurden. Es kann ja sein, dass ein Zähler besucht wurde, aber dieser defekt ist, und somit keine Daten abgelesen werden können. Dann wird das auch als Kommentar hinterlegt.
- Zu jeder "Ablesung", die ja einem physischen Zähler entspricht, werden nun die entsprechenden "Ablesewerte" abgelesen, und als "Zählerstand" gespeichert. Im Defekt-Fall wie im Punkt darüber. würden hier für diese "Ablesung" keine Einträge erzeugt.
Und bei dieser ganzen logischen Datenstruktur fällt es mir schwer, diesen Kreis aufzuheben.
Hat jemand von euch ein paar gute Tipps dazu und kann mir Feedback zu dieser DB geben?
Es grüßt,
der Physikbuddha