Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Der beste Weg, wiederkehrende Aufgaben/Kalender zu entwickeln/verwalten/gestalten

Speichern Sie alles in der Datenbank.

Sie möchten eine "Task Template"-Tabelle und eine "Task"-Tabelle haben, in denen es eine Eins->Viele-Beziehung gibt.

Wenn der Benutzer angibt, dass eine Aufgabe wiederholt werden soll, erstellen Sie einen „Aufgabenvorlagen“-Datensatz und erstellen Sie dann so viele „Aufgaben“, wie der Benutzer angegeben hat (erlauben Sie einem Benutzer nicht, Aufgaben zu weit in der Zukunft zu erstellen). Jede Aufgabe ist über einen Fremdschlüssel mit der Aufgabenvorlage verknüpft. Die Idee ist, dass SQL diese Datensätze effizienter verwalten wird, als zu versuchen, dies alles im Code basierend auf einer Vorlage zu tun. Auf diese Weise haben Sie mehr Möglichkeiten beim Sortieren und Filtern Ihrer Daten. Schließlich ist das Schreiben einer SQL-Abfrage einfacher als das Schreiben, Testen und Warten einer PHP-Funktion, die die Daten manipuliert.

Einige andere Tipps, die ich Ihnen geben würde, sind:

  • Versuchen Sie, viele Informationen in Ihren Datensatz "Aufgabenvorlage" zu bekommen. Behalten Sie die Anzahl der Aufgaben bei, die die Vorlage abdeckt, das Datum, an dem die letzte Aufgabe endet, die Zeit, die zwischen der ersten und der letzten Aufgabe vergangen ist, usw. Diese „Metadaten“ können Ihnen helfen, beim Sortieren und Filtern Abfragezeit zu sparen Aufgaben.
  • Setzen Sie einen Index in das Datums- und FK-Feld, das hilft auch bei der Abfragezeit.
  • Ich habe gerade zwei Kalender-Apps auf der Arbeit erstellt, die von den Chefs ziemlich gut angenommen wurden. Ich habe das JQuery-Plugin "FullCalendar" (http://arshaw.com/fullcalendar/) verwendet. Ich habe JQuery AJAX verwendet, um die meisten meiner Ereignisse zu verarbeiten, und es hatte eine integrierte Unterstützung für die Monats-, Tages- und Wochenansicht.