sql >> Database >  >> RDS >> Mysql

Beste manier om terugkerende taken/kalender te ontwikkelen/beheren/ontwerpen

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.


  1. Selecteer alles waar [eerste letter begint met B]

  2. SQL Return 1,0 in nieuwe variabele op basis van case when-instructie die verwijst naar meerdere andere variabelen

  3. CodeIgniter - Een afbeelding uploaden via een formulier, de locatie van de afbeelding opslaan in de database

  4. Indexen weergeven die zijn gemaakt voor een tabel in postgres