Serientermine erstellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Serientermine erstellen

    Hallo,

    ich hab mir ein kleines Event Script gebastelt, der Prototyp läuft ganz gut. Auf der einen Seite können Termine eingegeben werden, auf der anderen werden diese dann angezeigt, wenn man den entsprechenden Tag eingibt.

    Nun überleg ich, ob man sowas wie Serientermine hinkriegen könnte: Ein termin hat einen Anfangswert und wiederholt sich z.B. alle 7 Tage.

    D.h. die Datenbank soll mir alle Vielfache des Termins raussuchen bzw. rausfinden ob der Termin auch an einem bestimmten Datum angezeigt wird.

    Ich arbeite mit Unix Zeitstempeln, also sowas in der Art:

    ist der eingegebene Zeitstempel=Anfangszeitstempel + (x*Zeitintervall in Sekunden).

    Kann ich sowas mit mysql abfragen?

    Danke Manfred
    Cocoa Entwicklertraining - Alles für die Apfelzucht

  • #2
    Hmm. Ich würd Serientermine nicht auf Live-Abfragebasis machen, da wirst Du verrückt bei (z.B. wenn Du die nächsten 10 Termine rausfinden musst). Das gerät schnell ausser Kontrolle. Ich würd mir überlegen, eine Temp-Tabelle anzulegen, in die die Serientermine *berechnet* reingeschrieben werden, d.h. ich lege einen Termin an und sage "dieser Termin läuft für drei Monate jeden zweiten Donnerstag im Monat". Das wird dann *beim Anlegen* im CMS kalkuliert und als Einzeltermine in die Temp-Tabelle geschrieben. Damit hast Du eine Datenbasis, mit der Du frei agieren kannst und musst dich nicht in 30-Zeiligen Queries verstricken, die am Ende dann eine halbe Stunde brauchen.

    Kommentar


    • #3
      hmm,

      dann muss ich aber bei jeder Abfrage die Temp Tabelle für alle Serientermine erzeugen, da kann auch ganz schön was zusammenkommen.
      Cocoa Entwicklertraining - Alles für die Apfelzucht

      Kommentar


      • #4
        Nö es reicht eine Tabelle. Oder Du haust sie als temp markiert in die Eventstabelle selber. Es ist nur wichtig dass die Datensätze bei Änderungen am Termin gekickt und neu generiert werden können.

        Kommentar


        • #5
          Sieht mir alles nach viel overhead aus. Ausserdem lege ich mich fest, für welchen Zeitraum die Serientermine erstellt werden sollen.

          Folgende Idee:

          Der Startermin der Serie wird immer in der gleichen Woche festgelegt, meinetwegen erste Woche im Jahr 2000. Bei der Ausgabe wird berechnet, wieviele Wochen seit Startwoche und dem aktuellen Tag vergangen sind. Wiederholungszeitraum in Sekunden * Wochen müsste dann irgendwie den aktuellen Tag ergeben.

          Denk ich da richtig?
          Cocoa Entwicklertraining - Alles für die Apfelzucht

          Kommentar


          • #6
            Das geht auch einfacher: Wenn Du nur wöchentliche Termine machen willst, setzt Du statt Datum die Nummer des Wochentags ein. Alle regelmäßigen Termine für Sonntag kommen dann etwa mit "SELECT * FROM termine WHERE typ='serientermin' AND wochentag = 0".

            Aber mein ganz oben stehender Ansatz basiert auf schmerzensreicher Erfahrung. Solange die Anforderung nur ist, für einen bestimmten Tag wöchentliche Serientermine anzuzeigen, kein Problem. Sobald es aber losgeht mit "alle 10 Tage" oder "jeden 1. Donnerstag im Monat" fährst Du mit der temp-Lösung besser - sonst werden deine Queries so komplex, dass die Abfrage Jahre dauert. Aber machs wie Dus für richtig hälst!

            Kommentar


            • #7
              Ich werd mal rumprobieren

              Danke erstmal
              Cocoa Entwicklertraining - Alles für die Apfelzucht

              Kommentar

              Lädt...
              X