Kniffliger SELECT für Festivals
Linuchs
- datenbank
Hallo,
ich habe eine Tabelle für Veranstaltungen, manche sind als Festival gekennzeichnet, andere als Teilnehmer des Festivals.
Die Veranstaltungs- Übersicht ist nach Anfangs-Datum sortiert, Teilnehmer eines Festivals werden eingerückt direkt unterhalb des Festivals gezeigt: Shanty-Events
Jetzt kommt erstmalig der Fall, dass ein Teilnehmer ein anderes Start-Datum hat, also nicht am ersten Tag dabei ist.
id ! start ! titel ! festival_kz ! gastgeber_id
-----+-------------------------+------------+--------------
4711 ! 31.8. ! Ostsee-Festival ! 1 ! 0
8412 ! 2.9. ! Hafen Burgstaaken ! 0 ! 4711
Nun kann natürlich am 1.9. eine ganz andere Veranstaltung dazwischen sein, dann steht festival (31.8.) und Teilnehmer (2.9.) nicht mehr zusammen.
Im Moment ist ein Fehler im Programm, das Festival selbst (31.8.) wird nicht gezeigt.
Ich brauche mal eine Idee, wie ich das lösen kann, also die Zugehörigkeit optisch darstellen. Hier ja noch der Spezialfall von zwei Monaten. Ein Monatswechsel erzeugt eine Zwischen-Überschrift.
Andererseits sollte nicht jeder "Teilnehmer" als selbstständiges Event erscheinen. Die Eingabe der Teilnehmer ist aber beabsichtigt, damit die ihre Termine in ihrem eigenen Kalender haben.
Gruß, Linuchs
Hi,
ich habe eine Tabelle für Veranstaltungen, manche sind als Festival gekennzeichnet, andere als Teilnehmer des Festivals.
Ein Teilnehmer ist keine Veranstaltung.
Repariere dein kaputtes Datenmodell.
MfG ChrisB
Hallo,
Ein Teilnehmer ist keine Veranstaltung.
Repariere dein kaputtes Datenmodell.
Du hast Recht und ich habe mich falsch ausgedrückt.
Da gibt es also eine Veranstaltung, die über eine Woche läuft, etwa dieses ISSA Ostseefestival 2014 von Hafen zu Hafen.
In dem Rahmen bietet der Hafen Burgstaaken eine eigene Veranstaltung, die aber Bestandteil des Ostseefestivals ist. Ein Unter-Festival sozusagen.
Und für einen Chor ist das eine eigene Veranstaltung, die etwa mit der Busfahrt an die Ostsee beginnt. Doch die Busfahrt gehört nicht zum Ober-Festival.
Vereinfacht ausgedrückt: Es gibt Festivals in zwei Ebenen (hoffentlich nicht mehr).
Linuchs
Moin,
Da gibt es also eine Veranstaltung, die über eine Woche läuft, etwa dieses ISSA Ostseefestival 2014 von Hafen zu Hafen.
In dem Rahmen bietet der Hafen Burgstaaken eine eigene Veranstaltung, die aber Bestandteil des Ostseefestivals ist. Ein Unter-Festival sozusagen.
Und für einen Chor ist das eine eigene Veranstaltung, die etwa mit der Busfahrt an die Ostsee beginnt. Doch die Busfahrt gehört nicht zum Ober-Festival.
Vereinfacht ausgedrückt: Es gibt Festivals in zwei Ebenen (hoffentlich nicht mehr).
Soweit verstanden. Jetzt formuliere bitte nochmal deine ursprüngliche Frage. Am besten mit einem Beispiel. Irgendwie ist das völlig unklar, was du eigentlich willst.
Soweit verstanden. Jetzt formuliere bitte nochmal deine ursprüngliche Frage. Am besten mit einem Beispiel. Irgendwie ist das völlig unklar, was du eigentlich willst.
Bisher hatte ich Veranstaltungen, die zu einem Festival gehören, eingerückt in die nächsten Zeilen unter das Festival gesetzt.
Nun ist es das erste Mal, dass eine fremde Veranstaltung zeitlich dazwischen rutscht, es ist auch das erste Mal, dass eine Veranstaltung in einen anderen Monat fällt als ihr "führendes" Festival.
Hier der Kuddelmuddel: August-September-August-September
Ich dachte daran, den SELECT so zu gestalten, dass zugehörige Events nicht durch andere auseinandergerissen werden.
Aber die Idee ziehe ich zurück, denn die Veranstaltung am 2.9. in Burgstaaken gehört nicht in den Monat August, obwohl sie zu dem am 31.8. beginnenden Festival gehört.
Es bleibt die Frage:
Hat jemand eine Idee, wie ich zusammengehörende Events optisch hervorheben kann, auch wenn andere Events dazwischen liegen? Wo gibt es ähnliche Fälle?
Linuchs
Hallihallo,
Es bleibt die Frage:
Hat jemand eine Idee, wie ich zusammengehörende Events optisch hervorheben kann, auch wenn andere Events dazwischen liegen? Wo gibt es ähnliche Fälle?
Hm, so ganz verstehe ich dein Anliegen auch nicht... aber sehen wir es mal so. Es gibt Festivals, diese haben Unterfestivals (Teilnehmer). Dieser Block gehört erst einmal zusammen. Der Beginn und das Ende des Festivals definieren diesen Block zeitlich.
Falls jetzt nun ein NICHT zu diesem Festival gehörendes Event eigentlich ZWISCHEN den Teilnehmern des Festivals liegen würde (weil zeitlich zwischen Anfang und Ende des Festivals), darf es trotzdem auf keinen Fall dem Festivalblock zugeordnet werden oder gar diesen aufspregen. Es muss nach dem Block kommen (obwohl das Startdatum vor dem Ende des Festivals liegt).
In deinem Ansicht kann ich auf Anhieb nicht erkennen, was Festival und was Teilnehmer ist. Festivals sollten gut gekennzeichnet sein, eventuell zum Aufklappen (eventuell als Teaser die Teilnehmer auflisten).
nicht zu Festivals gehörende Events tauchen normal in der Liste auf, sind aber nicht so auffällig wie Festivals.
Na ja, nur mal so als Idee
Im Moment ist ein Fehler im Programm, das Festival selbst (31.8.) wird nicht gezeigt.
War kein Programmfehler, sondern ein Datenfehler. Der Veranstalter war nicht freigeschaltet.
Ist behoben.
Es bleibt das Problem, wenn mehrere Veranstaltungen verschiedener Tage zusammengehören, aber eine Fremdveranstaltung datumsmäßig dazwischenrutscht.
Es bleibt das Problem, wenn mehrere Veranstaltungen verschiedener Tage zusammengehören, aber eine Fremdveranstaltung datumsmäßig dazwischenrutscht.
Dein Grundproblem ist also, dass du zum einen eine chronologische Reihenfolge haben willst, das aber unter anderem nicht hinhaut, weil Festivals sich überschneiden.
Da kommt hinzu, das es "Unterfestivals" aka Veranstaltungen gibt.
In Prosa geschrieben musst du also alle Hauptfestivals ermitteln und Veranstaltungen/Unterfestivals zuordnen.
Dein Feld festival_kz
erschließt sich mir momentan so: Wenn 1 -> Unterveranstalung des vorherigen Festivals (wo festival_kz
= 0).
Das klingt für mich nach einem Design-Fehler.
id ! start ! end !titel ! parent ! gastgeber_id
-----+-------------------------+------------+--------------
15 ! 31.8. ! 3.9.!Bla-Hauptfestival ! NULL ! 641564
1325 ! 2.9. ! 2.9.!Bla-Unterfestival ! 15 ! 123
Mit einer solchen Struktur ermittels du alle Hauptfestivals mit
SELECT
*
FROM
`festival` as `main`
WHERE
`main`.`parent` IS NULL
ORDER BY
`main`.`start` ASC;
Jetzt fehlt eigentlich nur noch ein JOIN
auf die gleiche Tabelle noch mal um Unterveranstaltungen zu bekommen (musste bis her noch nicht mit JOIN
s auf die eigene Tabelle arbeiten, deswegen kann ich da nicht weiter Code liefern).
Damit solltest du keine Überschneidungen mehr zwischen Haupt- und Unterveranstaltungen haben.
MfG
bubble