Mailinglisten-Archive |
On Monday 09 February 2004 16:41, Henning Heil wrote: > ++++ Andre Gemünd wrote on 09.02.2004 16:18 ++++ > > > b) SELECT * FROM `termine` WHERE NOT [gesuchter termin] BETWEEN > > [startzeit] AND [endzeit] > > > > Das findet alle Termine die in einem anderen Zeitraum liegen, nicht > > aber alle Objekte die in einem bestimmten Zeitraum frei sind. > > richtig, also ich würde (bei meiner bescheidenen Programmiererfahrung) > den gesamten in Frage kommenden Zeitraum für den neuen Termin - sagen > wir mal zwischen 12:00 und 16:00 Uhr - betrachten und in die kleinst > sinnige Einheit teilen - z.B. 30 Minuten slots? - dann die bereits > vergebenen Zeiten aus der DB auffüllen, so wie es "genannt Mendelsohn" > vorschlägt und schliesslich sehen was denn wohl an freien Zeiten übrig > bleibt - und alles in einem array. Der Ansatz ist noch nicht zu Ende > gedacht und vielleicht auch nicht der performanteste (naja, erstmal > einen besseren finden), aber es könnte gehen. Performant sollte das Ding damit schon sein, auch wenn die Datenbank groß wird. Für eine Arztpraxis oder ein Hotelreservierungssystem sicherlich nicht schlecht. Die Termine sind leicht auffindbar und daher ist das System auch schnell. Ein Timestamp läßt sich mit phpmyadmin auf Index setzen. Und mit Timstamps kann MySQL rechnen und >< - Operationen ausführen. Insofern würde ich es als eleganter ansehen, wenn jeder Termin einen Datensatz bekommen würde. Gruß Ernst
php::bar PHP Wiki - Listenarchive