[vz-dev] MAX 1800Watt
Jakob Hirsch
jh at plonk.de
Mon Dec 27 14:05:11 CET 2010
Justin Otherguy, 2010-12-27 13:03:
> - anderenfalls
> bestimmen wir die Zeit zwischen 2 Impulsen -> wenn die timestamps nun
> nicht unique sind, ist die dann 0
Und damit die Leistung unendlich :)
Wenn ich das richtig sehe, wird die Höhe von so einfach so berechnet, ja?
P_n = Watt_pro_Impuls / (t_n - t_(n-1))
Wäre dann ja auch nicht das problem, P_(n-1) entsprechend zu erhöhen
(zusätzlicher Faktor "Impulse i", es können ja auch mehr als zwei
Impulse mit dem gleichen timestamp kommen).
> Ich schlage daher eine weitere kleine Änderung vor: - sollte der
> timestamp, der in die db eingetragen werden soll, bereits vorhanden
> sein (Kollision), legen wir nicht einen zweiten Eintrag mit dem
> gleichen timestamp an, sondern erhöhen den "value" um eins
Finde ich auch sinnvoller. Dafür ist der value ja da.
> Für die Implementierung fallen mir 2 Lösungen ein: - vor dem
> Eintragen eines Impulses könnten wir nach dem timestamp suchen; nur
> wenn dieser noch nicht vorhanden ist, tragen wir einen neuen ein;
> anderenfalls erhöhen wir "value" (das ist vermutlich aber Blödsinn)
Muß halt in einer Transaktion erfolgen.
> - wir tragen ein (wie derzeit) und falls das SQL-Statement mit einem
> Fehler endet (...schon vorhanden...) fragen wir den value ab und
> inkrementieren diesen
mysql hat genau für sowas "INSERT ... ON DUPLICATE KEY UPDATE
value=value+VALUES(value)". In anderen DBMS muß man das dann wohl über
Trigger machen. Ist nur die Frage, ob man sowas in Doctrine abbilden kann...
More information about the volkszaehler-dev
mailing list