[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