Bert: Dauerveranstaltungen im Veranstaltungskalender

Beitrag lesen

Hallo,

ich betreibe einen Veranstaltungskalender. Er hat ständig so um 700 Termine, vergangene werden gelöscht, neue von registrierten Veranstaltern eingegeben. Es fehlt mir der Vergleich, ob die Zahl gut ist. Denn andere Kalender protzen mit tausenden von Terminen, löschen aber nichts. Da es ca. 8000 Postleitzahlen in D gibt und jeder Ort / Ortsteil doch mindestens ein Feuerwehrfest im Jahr hat, bin ich selbst nicht so recht zufrieden. Als ich den Kalender machte, stellte ich mir zehn- bis zwanzigtausend künftige Termine vor.

Sehr zufrieden bin ich allerdings mit der Qualität der Termine, daraus schöpfe ich die Motivation, weiterzumachen.

Nun zu einem Problem: Bei anderen (z.B. städtischen) Kalendern stört mich, dass für einen Ort erstmal seitenweise Termine von Dauerausstellungen kommen. Im schlimmsten Fall auch noch an falschen Tagen, weil der Kalender nur von - bis kennt, aber nicht die Ruhetage. Da sind zwölf Zeichnungen in der Schalterhalle der Sparkasse wochenlang vorne, während die richtig aktuellen Themen auf die hinteren Plätze verdrängt werden.

Meine Vorgabe ist, dass jeder Tag einzeln eingegeben werden muss. Das geht mit einer Kopierfunktion blitzschnell, aber man muss die Tage "durchhecheln". Flohmarktbetreiber machen das.

Ein Kompromiss ist, dass man einen "tag_bis" eingeben kann, um das Löschen vor diesem Datum zu verhindern. Nun ist bei uns gestern und heute ein Event, aber heute (tag_bis) wird aufgrund meiner bisherigen Überlegung nicht angezeigt.

Jetzt habe ich versucht, Events zusätzlich dann anzuzeigen, wenn der letzte Tag (also ein gültiger Öffnungstag) in den Anzeigezeitraum fällt. Zweitagesevents wären damit ordentlich abgehandelt. Aber die Durchlaufzeit des Programms erhöht sich von 0,7 sec auf ca. 30 sec.

Bisher hatte ich diese Zeile im SQL:
AND ter1.tag >= '2013-06-30' AND ter1.tag <= '2014-06-29'

Und diese Erweiterung benötigt dann 30 sec:

AND (ter1.tag >= '2013-06-30' AND ter1.tag <= '2014-06-29'  
 OR ter1.tag_bis = '2013-06-30' )

Bevor ich mich nun lange mit SQL-Tricksereien beschäftige, möchte ich von euch gerne hören, ob das Konzept überhaupt stimmt. Wie kann man Dauerveranstaltungen gerecht anzeigen, ohne die wirklich aktuellen Termine auf die Plätze zu verweisen. Obwohl ein Wochenend-Event ja noch keine Dauerveranstaltung ist.

Gruß, Bert