Hallo Leute,
ich habe eine MySQL Datenbank, die in etwa Folgends beinhaltet:
In einer Tabelle ZEIT werden An- und Abmeldezeiten von Usern gespeichert.
In einer anderen Tabelle, nennen wir sie mal AKTION, werden vorgenomme Aktionen von Benutzern gespeichert.
Diese Tabelle enthält Informationen über die Aktionen, und zu welcher Zeit sie ausgeführt wurden.
Es gibt also in beiden Tabellen, Spalten mit Datum(Datentyp Date) und Zeit(Datentyp TIME).
In der Tabelle ZEIT gibt es die Spalte Benutzer, in der Tabelle Aktion jedoch nicht.
Mein Ziel ist es jetzt, die Aktionen aus der Tabelle AKTION den jeweiligen Benutzern zuzuweisen. Es muss also das Datum und die Zeit der Aktion mit der Anmeldezeit überprüft werden.
Der Benutzer, der zur Zeit der AKTION angemeldet war, bekommt die Aktion also zugewiesen.
Jetzt ist es aber so, das der Benutzer sich mehrmals täglich an- und abmelden kann, sodass sich für jeden Benutzer mehrere Zeitfenster ergeben.
Als erstes müssten ja die Zeitfenster ermittelt werden:
SELECT * FROM ZEIT WHERE user='benutzername' and art='Anmeldung'
sowie
SELECT * FROM ZEIT WHERE user='benutzername' and art='Abmeldung'
So jetzt hätte ich jeweils die An- und Abmeldezeiten. Da es mehrere An- und Abmeldungen gibt muss ich die Zeiten ja irgendwie speichern, oder?
Würdet ihr hier ein Array nehmen?
Im nächsten Schritt müssen die gespeicherten Zeitfensten nun mit der Tabelle AKTION verglichen werden.
SELECT * FROM AKTION WHERE Datum='gespeichertesDatum' AND Zeit BETWEEN 'gespeicherteStartzeit' AND 'gespeicherteEndzeit'
Und das für alle Einträge im Array.
Die Tabellenstrukturen sind festgelegt und können nicht verändert werden.
Ziel der ganzen Aktion soll eine Monatsauswertung sein.
Habt ihr eventuell TIPPS für mich, wie ich das sauber und effektiv realisieren kann?
MfG watchdogg
ich habe eine MySQL Datenbank, die in etwa Folgends beinhaltet:
In einer Tabelle ZEIT werden An- und Abmeldezeiten von Usern gespeichert.
In einer anderen Tabelle, nennen wir sie mal AKTION, werden vorgenomme Aktionen von Benutzern gespeichert.
Diese Tabelle enthält Informationen über die Aktionen, und zu welcher Zeit sie ausgeführt wurden.
Es gibt also in beiden Tabellen, Spalten mit Datum(Datentyp Date) und Zeit(Datentyp TIME).
In der Tabelle ZEIT gibt es die Spalte Benutzer, in der Tabelle Aktion jedoch nicht.
Mein Ziel ist es jetzt, die Aktionen aus der Tabelle AKTION den jeweiligen Benutzern zuzuweisen. Es muss also das Datum und die Zeit der Aktion mit der Anmeldezeit überprüft werden.
Der Benutzer, der zur Zeit der AKTION angemeldet war, bekommt die Aktion also zugewiesen.
Jetzt ist es aber so, das der Benutzer sich mehrmals täglich an- und abmelden kann, sodass sich für jeden Benutzer mehrere Zeitfenster ergeben.
Als erstes müssten ja die Zeitfenster ermittelt werden:
SELECT * FROM ZEIT WHERE user='benutzername' and art='Anmeldung'
sowie
SELECT * FROM ZEIT WHERE user='benutzername' and art='Abmeldung'
So jetzt hätte ich jeweils die An- und Abmeldezeiten. Da es mehrere An- und Abmeldungen gibt muss ich die Zeiten ja irgendwie speichern, oder?
Würdet ihr hier ein Array nehmen?
Im nächsten Schritt müssen die gespeicherten Zeitfensten nun mit der Tabelle AKTION verglichen werden.
SELECT * FROM AKTION WHERE Datum='gespeichertesDatum' AND Zeit BETWEEN 'gespeicherteStartzeit' AND 'gespeicherteEndzeit'
Und das für alle Einträge im Array.
Die Tabellenstrukturen sind festgelegt und können nicht verändert werden.
Ziel der ganzen Aktion soll eine Monatsauswertung sein.
Habt ihr eventuell TIPPS für mich, wie ich das sauber und effektiv realisieren kann?
MfG watchdogg

Kommentar