Ist das per SQL zu lösen?
Ist das per SQL zu lösen?
am 01.02.2007 01:13:39 von spam
Hallo,
es geht um ein PZE-System. Da gibt es eine Tabelle A, in der werden die
aktuellen Stati der Mitarbeiter geführt. Diese Tabelle hat den simplen
Aufbau:
mitnr text, status text, kstnr text
- mitnr=Mitarbeiter-Nummer
- status ist ABW oder ANW oder MAF oder HLF (abwesend, anwesend,
Maschinenführer oder Helfer)
- kstnr ist die Kostenstelle, wenn er abwesend oder nur anwesend ist,
ist diese 000, sonst die an der er arbeitet
In einer anderen Tabelle B soll per SQL eine Zeichenkette geführt
werden, die es ermöglicht, in einem Frontend einfach die Stati der
letzen 24 Stunden, aufgelöst in 6-Minuten-Häppchen, zu visualisieren.
Diese Tabelle hat die ebenfalls sehr simple Struktur:
zeit time, mitnr text, daten text
(zeit=letzte Aktualisierung, das Frontend zeichent darauf basierend
einen Zeitstrahl)
An den Text im Feld Daten soll alle 6 Minuten rechts ein Zeichen
angehängt werden (0 für abwesend, 1 für anwesend, 2 für Helfer, 3 für
Maschinenführer). Dabei soll die Zeichenkette nicht länger als
(24h/6Min)=240 Zeichen werden. Immer wenn rechts ein neues Zeichen
angehängt wird, soll (falls die Länge dann 240 überschreitet) links ein
Zeichen entfallen.
Natürlich kann ich das auch im Frontend machen, aber vielleicht kann ich
mit einem geschickten SQL-Statement die Resourcen ein wenig schonen.
Immerhin wären dann ca. 200 Datensätze jedesmal zu holen (das werden sie
sowieso für die Anzeige) aber auch zurückzuschreiben. Nun weiß ich
nicht, ob es wirklich was bringt, das Anhängen und die Läbenbegrenzung
mit einem trickreichen SQL-Befehl zu machen ... ?
Frank
Re: Ist das per SQL zu lösen?
am 01.02.2007 01:30:46 von spam
Frank Esselbach wrote:
> Läbenbegrenzung
soll natürlich "Längenbegrenzung" heißen.
Frank
Re: Ist das per SQL zu lösen?
am 01.02.2007 08:29:15 von Andreas Kretschmer
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Re: Ist das per SQL zu lösen?
am 01.02.2007 10:17:04 von Claus Reibenstein
Frank Esselbach schrieb:
> mitnr text, status text, kstnr text
>
> - mitnr=Mitarbeiter-Nummer
> - status ist ABW oder ANW oder MAF oder HLF (abwesend, anwesend,
> Maschinenführer oder Helfer)
Hier würde ich ENUM statt TEXT vorschlagen.
> - kstnr ist die Kostenstelle, wenn er abwesend oder nur anwesend ist,
> ist diese 000, sonst die an der er arbeitet
Und hier UNSIGNED INT(3) ZEROFILL.
> An den Text im Feld Daten soll alle 6 Minuten rechts ein Zeichen
> angehängt werden (0 für abwesend, 1 für anwesend, 2 für Helfer, 3 für
> Maschinenführer). Dabei soll die Zeichenkette nicht länger als
> (24h/6Min)=240 Zeichen werden. Immer wenn rechts ein neues Zeichen
> angehängt wird, soll (falls die Länge dann 240 überschreitet) links ein
> Zeichen entfallen.
Wenn Du dieses Feld mit 240 Nullen (für "total abwesend")
initialisierst, kannst Du _immer_ das erste Zeichen wegwerfen und ein
neues anhängen. Dann ist die Länge _immer_ 240. Das dürfte das Handling
deutlich vereinfachen.
> Immerhin wären dann ca. 200 Datensätze jedesmal zu holen (das werden sie
> sowieso für die Anzeige) aber auch zurückzuschreiben.
Was sind schon 200 Datensätze? Mehr als ein paar Millisekunden werden
dafür wohl kaum verbraucht, und das alle 6 Minuten. IMHO vernachlässigbar.
Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /
Re: Ist das per SQL zu lösen?
am 01.02.2007 13:42:02 von spam
Hallo,
> Was sind schon 200 Datensätze? Mehr als ein paar Millisekunden werden
> dafür wohl kaum verbraucht, und das alle 6 Minuten. IMHO vernachlässigbar.
ok, das war die wichtigste Info für mich. Ist mir sowieso viel
sympatischer, dieses in meiner Anwendung zu erledigen, als irgendwelche
monströsen trickreichen SQL-Statements zu verwenden ... Danke.
Frank
Re: Ist das per SQL zu lösen?
am 01.02.2007 15:55:00 von Claus Reibenstein
Frank Esselbach schrieb:
>> Was sind schon 200 Datensätze? Mehr als ein paar Millisekunden werden
>> dafür wohl kaum verbraucht, und das alle 6 Minuten. IMHO vernachlässigbar.
>
> ok, das war die wichtigste Info für mich. Ist mir sowieso viel
> sympatischer, dieses in meiner Anwendung zu erledigen, als irgendwelche
> monströsen trickreichen SQL-Statements zu verwenden ... Danke.
Ähm ... ich meinte jetzt eigentlich Millisekunden innerhalb der
Datenbank, nicht innerhalb der Applikation :-)
Aber letztendlich dürfte das ziemlich egal sein.
Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /