Struktur zur Speicherung von Gewinnfaktoren

Hi,

Also ich hab jetzt eine Frage die nicht direkt mit Perl zu tun hat.
Ich frags aber hier weil ich es mit Perl realisieren möchte :smile:

Mal eine ganz abstrakte Umschreibung…

Ich möchte bestimmte Prozesse optimieren.
Optimieren im Sinne von Verlust, Gewinn, Gewinnsteigerung.
Der Gewinnfaktor (Aufschlag) errechnet sich grob durch Einnahmen / Ausgaben.
Nun möchte ich diese Daten kummiliert für jeweils eine volle Stunde
in einer MySQL Datenbank speichern.

Meine Frage nun…ob einer Ideen oder Tipps für eine ordentlich Datenstruktur
hat mit der man später auch arbeiten - im Sinne von vergleichen - kann.
(Hat sich der Gewinnfaktor verbessert, verschlechter, gleichgeblieben…)

Danke für jegliche Art von Tipps und Anregungen.

bye
Martin

hmm.

was hast du denn als ausgangsdaten? buchungen?
ist es fuer eine webanwendung gedacht?
willst du tatsaechlich nur die anhaengikeit gewinnfaktor= f(tagesstunde) ablesen?

musst du die daten laenger vorhalten? musst du ruecksicht auf speicherplatz/performance nehmen?

wenn ich davon ausgehe, dass es eine webanwednugn werden soll, und ich keine ruecksicht auf perfomance/speicherplatz nehme, wuerde ich es (aus der huefte geschossen) wie folgt loesen:

buchung kommt rein:
2. erste transaktion der aktuellen stunde?
3. wenn ja: sonst 4
3.1 select avg(sum(einnahmen)-sum(ausgaben)) as g from table1 where (stunde= aktuelle stunde-1)
3.2 insert into table2 set gewinnfaktor=g, stunde=aktuellestunde-1, datum=heute
3.3 delete from table1
5. insert into table1 set buchung=betrag (wobei buchung einnahme oder ausgabe sei)

uebersicht:

  1. select * from table 2;

wahrscheinlich wirst du aber die ausgangsdaten aufheben wollen, weil man daraus noch mehr ablesen kann…

Hi,

Also vorweg: es wird keine direkte Webanwendung.
Performance / Speicher Aspekte können völlig außer Acht gelassen werden.

Die Frage ist z.B. wie sollen die kummulierten Daten gespeichert werden:

ID|STUNDE |EINNAHMEN|AUSGABEN
1 12:00 01.01.2002 10,00 3,00
2 13:00 01.01.2002 10,00 3,00

wobei 1 12:00 - 12:59 ist
und 2 13:00 - 13:59 ist

oder gäbs ne bessere Lösung für die Speicherung.

Halt einfach auch eine Struktur die man möglichst flexibel abfragen kann ob z.B. der Gewinnfaktor sich um X verbessert hat
seit letzer Stunde, letzen Tag u.s.w.

bye
martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ja, z.b. so.
man koennte argumentieren, dass du zuviele daten vorhaelst, wenn dich nur der gewinfaktor, der sich aus einnahmen und ausgaben ableitet, es sei denn du willst noch eine andere ableitung asu den daten herbeifuehren. die spalte stunde ist als integer auszufuehren, weil es sich ncith um eine uhrzeit handelt, das datum davon getrennt.

aber unter uns, die anwendung scheint mir im moment nciht so hochkomplex, als dass man hier uebermaessig viel konzeptionsaufwand treiben muesste :wink:

Hi,

Also vorweg: es wird keine direkte Webanwendung.
Performance / Speicher Aspekte können völlig außer Acht
gelassen werden.

Die Frage ist z.B. wie sollen die kummulierten Daten
gespeichert werden:

> ID|STUNDE |EINNAHMEN|AUSGABEN  
> 1 12:00 01.01.2002 10,00 3,00  
> 2 13:00 01.01.2002 10,00 3,00  
>   
> wobei 1 12:00 - 12:59 ist  
> und 2 13:00 - 13:59 ist

oder gäbs ne bessere Lösung für die Speicherung.

Halt einfach auch eine Struktur die man möglichst flexibel
abfragen kann ob z.B. der Gewinnfaktor sich um X verbessert
hat
seit letzer Stunde, letzen Tag u.s.w.

bye
martin

hmm.

was hast du denn als ausgangsdaten? buchungen?
ist es fuer eine webanwendung gedacht?
willst du tatsaechlich nur die anhaengikeit gewinnfaktor=
f(tagesstunde) ablesen?

musst du die daten laenger vorhalten? musst du ruecksicht auf
speicherplatz/performance nehmen?

wenn ich davon ausgehe, dass es eine webanwednugn werden soll,
und ich keine ruecksicht auf perfomance/speicherplatz nehme,
wuerde ich es (aus der huefte geschossen) wie folgt loesen:

buchung kommt rein:
2. erste transaktion der aktuellen stunde?
3. wenn ja: sonst 4
3.1 select avg(sum(einnahmen)-sum(ausgaben)) as g from table1
where (stunde= aktuelle stunde-1)
3.2 insert into table2 set gewinnfaktor=g,
stunde=aktuellestunde-1, datum=heute
3.3 delete from table1
5. insert into table1 set buchung=betrag (wobei buchung
einnahme oder ausgabe sei)

uebersicht:

  1. select * from table 2;

wahrscheinlich wirst du aber die ausgangsdaten aufheben
wollen, weil man daraus noch mehr ablesen kann…