Hallo,
ich möchte eine Art Belegungssystem in PHP in Verbindung mit einer MySQL-Datenbank realisieren.
Hierzu wollte ich dementsprechend Zeiträume (von-bis) als Timestamp in der DB ablegen.
Da Belegungen üblicherweise tagesgenau stattfinden, wollte ich dementsprechend z.B. eine Belegung um
10 Uhr enden, die Anschlussbelegung dann um 11 Uhr beginnen lassen.
Jetzt beginnen aber meine Probleme:
Eine Abfrage, ob bereits für einen neuen Belegungszeitraum eine Belegung vorliegt, kann ich ja doch mit
BETWEEN vornehmen, aber diese query würde mir ja nur dann einen Wert zurückliefern, wenn der
geplante Belegungszeitrahmen gleich oder kleiner als eine schon gespeicherte Belegung wäre.
Was ist aber bei folgenden Beispiel-Scenarien:
Gespeicherte Belegung:
01.10.2010 11.00 Uhr bis 05.10.2010 10.00 Uhr
Gewünschte Neubelegung:
20.09.2010 11.00 Uhr bis 03.10.2010 10.00 Uhr
oder
03.10.2010 11.00 Uhr bis 04.10.2010 10.00 Uhr
Ich kann ja eigentlich schlecht hingehen und einen neuen Belegungszeitraum in einzelne Tage zerlegen und dann jeweils abfragen, ob dieser Timestamp schon belegt ist (wären ja bei 2 Belegungstagen "nur" zwei BETWEENs aber was mache ich bei einem Belegungszeitraum von 6 Wochen [6 KW * 7 Tage = 42 Timestamp-Abfragen]) ?
Umgekeht bahnt sich ja auch schon das Problem an, das ich bei einer Ausgabe einer Wochen oder Monatsübersicht auch die Zeiträume "zwischen" meinen Start- und Endtimestamps berücksichtigen müsste...
Ich hoffe das mir einer einen "Schubs" in die richtige Denkrichtung geben kann und bitte daher um eure Mithilfe.
Wichtig ist mir allerdings, das ich nur ungerne auf Klassen Dritter ausweichen möchte.
Viele Grüße
Peter