Simpan semuanya di database.
Anda ingin memiliki tabel "Template Tugas" dan tabel "Tugas" yang memiliki hubungan satu->banyak.
Saat pengguna menunjukkan bahwa mereka ingin tugas terulang kembali, buat catatan "Templat Tugas" lalu buat "Tugas" sebanyak yang ditunjukkan pengguna (jangan izinkan pengguna membuat tugas terlalu jauh di masa mendatang). Setiap Tugas ditautkan ke Templat Tugas melalui Kunci Asing. Idenya adalah bahwa SQL akan lebih efisien dalam mengelola catatan ini daripada mencoba melakukan ini semua dalam kode berdasarkan satu templat. Dengan cara ini, Anda akan memiliki lebih banyak pilihan saat menyortir dan memfilter data Anda. Bagaimanapun, menulis kueri SQL lebih mudah daripada menulis, menguji, dan memelihara fungsi PHP yang memanipulasi data.
Beberapa tips lain yang akan saya berikan kepada Anda adalah:
- Cobalah untuk mendapatkan banyak informasi dalam catatan "Template Tugas" Anda. Pertahankan jumlah tugas yang dicakup Template, tanggal tugas terakhir berakhir, waktu yang berlalu antara tugas pertama dan terakhir, dll. "Meta Data" ini dapat membantu menghemat waktu kueri saat Anda ingin mengurutkan dan memfilter tugas.
- Letakkan indeks pada bidang Tanggal dan FK, ini akan membantu waktu kueri juga.
- Saya baru saja membuat dua aplikasi kalender di tempat kerja yang diterima dengan cukup baik oleh para bos. Saya menggunakan plugin JQuery "FullCalendar" (http://arshaw.com/fullcalendar/). Saya menggunakan JQuery AJAX untuk menangani sebagian besar acara saya, dan itu telah mendukung tampilan Bulan, Hari, dan Minggu.