php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.09.2011, 13:48  
Neuer Benutzer
 
Registriert seit: 23.09.2011
Beiträge: 9
PHP-Kenntnisse:
Fortgeschritten
MyFrosch befindet sich auf einem aufstrebenden Ast
Standard Kalenderspeicherung - Serientermine berechnen oder stati

Hallo,

ich hoffe das hier ist das richtige Forum für das Anliegen.

Ich baue gerade für eine kleine Termindatenbank einen Kalender. Nun gibt es Termine die z.b. jeden Montag sind oder einmal im Monat usw...

Bisher bin ich auf 2 Lösungsansätze gekommen:

a) Ich trage von der Serie jeden Termin statisch in eine Tabelle wo nur die Termine stehen.
b) Ich ermögliche das bei einem Termin eingestellt werden kann, dass sich der Termin wiederholt und errechne bei der Ausgabe immer ob er ausgegeben wird.

Was für b) spricht ist ganz einfach. Es ist viel flexibler und wenn etwas geändert wird kann ich das direkt für die ganze Serie machen.
Nachteil für b) ist meiner Meinung ganz klar das ich dauernd alle Termine berechnen muss und durchgehen. Und sollte ein Event einmal eine Ausnahme haben, müsste ich für den einen Termin wieder auf a) gehen.

Bei Lösung a) sind die Fehlermöglichkeiten wesentlich geringer und die Abfrage eher schneller. Bei Änderungen müsste man im Backend allerdings einbauen das er alle Termine ändert. Ein Vorteil wäre das hier Ausnahmen eher das kleine Problem sind.

Ich würde mich über eure Gedanken und Anregungen freuen .

lg
philipp
MyFrosch ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.09.2011, 21:39  
Benutzer
 
Registriert seit: 29.06.2011
Beiträge: 88
PHP-Kenntnisse:
Fortgeschritten
ChristianK ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich würde mich persönlich für Variante b entscheiden. Klar, musst du immer rechnen, wenn du ausgibst, aber die Verwaltung der Ausnahmetermine oder Änderungen an der Wiederholung werden dadurch viel einfacher. Und wenn du nicht gerade 100'000 wiederholende Termine und 2 Mio. Seitenaufrufe hast, wird sich da wohl noch nichts beschweren
ChristianK ist offline   Mit Zitat antworten
Alt 25.09.2011, 20:34  
Erfahrener Benutzer
 
Registriert seit: 04.07.2003
Beiträge: 359
PHP-Kenntnisse:
Fortgeschritten
Sirke befindet sich auf einem aufstrebenden Ast
Standard

Ich würde alle Termine einzeln in einer Datenbank hinterlegen, auch wenn sie zu einem sich wiederholenden Termin gehören. Für diese Termine würde ich dann eine Referenz auf den ersten Termin setzen, sodass du nachvollziehen kannst, wodruch dieser Termin entstanden ist. Die Wiederholungen würde ich immer nur für einen Zeitraum setzen lassen und nicht ins "unendliche". Mir würde für einen Termin mir der Berechnung der nächsten Termine nämlich kein guter Ansatz einfallen, um zu erreichen welcher Termin an Tag X ist. Außerdem würde ich sagen, lassen sich dann besser kompliziertere Wiederholungen speichern, wie z.B. jeden fünften Montag oder jeden ersten Freitag im Monat.

Bei einer Veränderung bei einem Termin an Tag Y kannst du dann entscheiden, ob diese auf alle weiteren Termine fortgesetzt wird oder nur der eine Termin betroffen ist.
Sirke ist offline   Mit Zitat antworten
Alt 25.09.2011, 20:39  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 392
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Du brauchst für einen Terminkalender doch ohnehin eine vollständige Datums-Tabelle. Schließlich kann man nicht alle Feiertage berechnen, auch Schulferien usw. entziehen sich jedem Algorhithmus.
Zitat:
Was für b) spricht ist ganz einfach. Es ist viel flexibler und wenn etwas geändert wird kann ich das direkt für die ganze Serie machen.
Wenn man etwas berechnen kann, kann man es auch in eine Tabelle schreiben. Der Mehraufwand an Rechenleistung oder -zeit dürfte in der Praxis keine Rolle spielen (solange Du nicht etwa alle Facebook-Nutzer verwalten willst).
Mein Hauptargument für Tabelleneinträge:
Bei den nur berechneten, aber nicht gespeicherten Terminen ist keine historische Rückschau möglich.

Edit:
Bei Serienterminen gehört nach meiner Überzeugung natürlich ein Endtermin vergeben.
achtelpetit ist offline   Mit Zitat antworten
Alt 26.09.2011, 08:17  
Neuer Benutzer
 
Registriert seit: 23.09.2011
Beiträge: 9
PHP-Kenntnisse:
Fortgeschritten
MyFrosch befindet sich auf einem aufstrebenden Ast
Standard

Also ich habe versucht mich zu Orientieren an anderen Standards wie z.b. dem iCal Format was Thunderbird/Lightning oder halt Apple ICal nutzen... und habe Festgestellt das in dem Format auch die Termine alle eingetragen werden. Wobei Thunderbird hierbei für sich intern rechnet.

Ich werde die Termine einzeln Eintragen. Durch die VerbindungsID zum ersten Eintrag, und dort die Wiederholungseinstellungen. Dadurch wird die Datenbank in dem Falle schon fast einfach zu nem Cache System.
MyFrosch ist offline   Mit Zitat antworten
Alt 26.09.2011, 09:38  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Ich habe auch schon über diesem Problem gegrübelt und bin für mich zu dem Schluss gekommen, dass ich bei so was die Termine beim Anlegen selber für einen gewissen Zeitraum in die Zukunft speichern würde (z. B. 1 Jahr). Das hat den Vorteil, dass nicht jedesmal alle Termin berechnet werden müssen, wenn z. B. jemand den Kalender aufruft, was bei vielen Terminen und vielen Usern sicher die DB in die Knie zwingt. Außerdem hat man die Kontrolle über einzelne Termine.

Was man beachten muss, ist:
- Was passiert, wenn sich der Termin ändert? Dafür benötigt man bei den "automatisch" eingetragenen Terminen eine Art Referenz auf den Ausgangs-Termin, damit diese bei einer Änderung (z. B. Änderung des Intervals) automatisch gelöscht/angepasst werden können.
- Was passiert, wenn jemand den Zeitraum nach dem einen Jahr betrachtet?
xm22 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
auslesen und berechnen von variablen Garfield200508 PHP Einsteiger 7 27.12.2010 23:55
Geburtsdatum an bestimmtem Datum berechnen maeck PHP Tipps 2010 9 24.06.2010 10:16
zeit berechnen Komatruppe PHP Tipps 2009 4 20.09.2009 21:35
Maximale Anzahl berechnen bei proportional steigenden Kosten Aloex666 PHP Tipps 2009 6 23.05.2009 11:01
[Erledigt] Mittelwert in einer Zeile berechnen hustensaft Datenbanken 19 25.03.2009 20:53
[Erledigt] Sporttabelle aus Ergebnissen berechnen Datenbanken 6 13.03.2006 20:37
Help, Zahlen aus DB berechnen PHP Tipps 2004-2 6 29.12.2004 17:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php serientermine berechnen, serientermine php, php kalender serientermin, software design terminreihe, stati php, cake php intervalle berchnen, serientermin in datenbank abspeichern, berechnungen in datenbank hinterlegen, php datumsdifferenz berechnen wiederholende termine, ics format serienelement, interne speicherung von wiederholenden terminen, php kalender serien berechnen, kalender serientermine datenbank, berechnung termine einmal im monat, serientermine berechnen oder eintragen php, serientermine ausgeben php, php terminkalender wiederholende termine speichern, serientermin berechnung, php berechnung von sich wiederholenden terminen, serientermine berechnen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum