Bewaar het allemaal in de database.
U wilt een "Taaksjabloon"-tabel en een "Taak"-tabel hebben met een een->veel-relatie.
Wanneer de gebruiker aangeeft dat hij wil dat een taak opnieuw wordt uitgevoerd, maak dan een "Taaksjabloon"-record aan en maak vervolgens zoveel "Taken" als de gebruiker heeft aangegeven (sta niet toe dat een gebruiker taken te ver in de toekomst maakt). Elke taak is via een externe sleutel gekoppeld aan de taaksjabloon. Het idee is dat SQL efficiënter zal zijn in het beheren van deze records dan te proberen dit allemaal in code te doen op basis van één sjabloon. Op deze manier heeft u meer keuze bij het sorteren en filteren van uw gegevens. Het schrijven van een SQL-query is immers gemakkelijker dan het schrijven, testen en onderhouden van een PHP-functie die de gegevens manipuleert.
Enkele andere tips die ik je zou geven zijn:
- Probeer veel informatie in uw "Taaksjabloon"-record te krijgen. Bewaar het aantal taken dat de sjabloon beslaat, de datum waarop de laatste taak eindigt, de tijd die is verstreken tussen de eerste en de laatste taak, enz. Deze "metagegevens" kunnen u helpen om zoektijd te besparen wanneer u wilt sorteren en filteren taken.
- Plaats een index in het veld Datum en FK, dit helpt ook bij het opvragen.
- Ik heb zojuist op het werk twee agenda-apps gebouwd die redelijk goed werden ontvangen door de bazen. Ik gebruikte de "FullCalendar" JQuery-plug-in (http://arshaw.com/fullcalendar/). Ik gebruikte JQuery AJAX om de meeste van mijn evenementen af te handelen en het had ingebouwde ondersteuning voor de maand-, dag- en weekweergave.