worki2k1
Erfahrenes Mitglied
Hallo Leute,
ich stehe vor einem Problem, bei dem ich versuchen möchte eine möglichst wenig Serverbelastung hervorzurufen.
Folgendes Problem: In einer Schulverwaltungssoftware tragen unsere Teilnehmer jeden Tag ein bis mehrere Berichte ein, was diese an dem entsprechenden Tag gemacht haben. Ist also vergleichbar mit einem Berichtsheft wie man es aus der Ausbildung kennt.
Die Teilnehmer sollen nun vom System auf fehlende Berichte hingewiesen werden. Die wohl schlechteste Lösung (aber einfach) wäre nun jeden Tag durchzugehen und zu schauen ob dort mind. ein Bericht vorliegt. Da die Teilnehmer bei uns aber im Durchschnitt 5-8 Monate verweilen, ist es eine recht hohe Serverlast mal eben schnell alle Tage in 8 Monaten zu überprüfen.
Mein zweiter Lösungsansatz sieht so aus:
Mit der Anweisung GROUP BY in SQL lasse ich mir einfach alle Berichte des Teilnehmers gruppiert nach Datum zurückgeben. Nebenbei erstell ich ein Array mit allen Datumsangaben vom Eintrittstermin des Teilnehmer bis zum heutigen Tag (sofern der heutige Tag früher dem Austrittstermin ist) und füge als Wert eine 1 (bzw. true) an den Tagen ein wo er mir einen Bericht anzeigt. Somit könnte ich ganz genau die Tage herausfinden an denen der Teilnehmer einen Bericht vergessen hat.
Hat vielleicht jemand eine bessere Idee? Es sei an dieser Stelle gesagt, dass es bei uns im Haus auch Berater gibt, denen mehrere Teilnehmer zugeordnet sind. Die Berater sollen ebenfalls einsehen können ob einer der Teilnehmer irgendwo einen Bericht vergessen hat. Diese Funktion sollte also innerhalb einer Seite auch für mehrere Teilnehmer ausgeführt werden können.
Also wie gesagt, falls jemand noch andere Vorschläge zur Lösung hat kann sie mir gern unterbreiten. Für Hilfe bedanke ich mich schon jetzt.
ich stehe vor einem Problem, bei dem ich versuchen möchte eine möglichst wenig Serverbelastung hervorzurufen.
Folgendes Problem: In einer Schulverwaltungssoftware tragen unsere Teilnehmer jeden Tag ein bis mehrere Berichte ein, was diese an dem entsprechenden Tag gemacht haben. Ist also vergleichbar mit einem Berichtsheft wie man es aus der Ausbildung kennt.
Die Teilnehmer sollen nun vom System auf fehlende Berichte hingewiesen werden. Die wohl schlechteste Lösung (aber einfach) wäre nun jeden Tag durchzugehen und zu schauen ob dort mind. ein Bericht vorliegt. Da die Teilnehmer bei uns aber im Durchschnitt 5-8 Monate verweilen, ist es eine recht hohe Serverlast mal eben schnell alle Tage in 8 Monaten zu überprüfen.
Mein zweiter Lösungsansatz sieht so aus:
Mit der Anweisung GROUP BY in SQL lasse ich mir einfach alle Berichte des Teilnehmers gruppiert nach Datum zurückgeben. Nebenbei erstell ich ein Array mit allen Datumsangaben vom Eintrittstermin des Teilnehmer bis zum heutigen Tag (sofern der heutige Tag früher dem Austrittstermin ist) und füge als Wert eine 1 (bzw. true) an den Tagen ein wo er mir einen Bericht anzeigt. Somit könnte ich ganz genau die Tage herausfinden an denen der Teilnehmer einen Bericht vergessen hat.
Hat vielleicht jemand eine bessere Idee? Es sei an dieser Stelle gesagt, dass es bei uns im Haus auch Berater gibt, denen mehrere Teilnehmer zugeordnet sind. Die Berater sollen ebenfalls einsehen können ob einer der Teilnehmer irgendwo einen Bericht vergessen hat. Diese Funktion sollte also innerhalb einer Seite auch für mehrere Teilnehmer ausgeführt werden können.
Also wie gesagt, falls jemand noch andere Vorschläge zur Lösung hat kann sie mir gern unterbreiten. Für Hilfe bedanke ich mich schon jetzt.