Lưu trữ tất cả trong cơ sở dữ liệu.
Bạn muốn có bảng "Mẫu nhiệm vụ" và bảng "Nhiệm vụ" có mối quan hệ một-> nhiều.
Khi người dùng cho biết họ muốn nhiệm vụ lặp lại, hãy tạo bản ghi "Mẫu nhiệm vụ" và sau đó tạo nhiều "Công việc" như người dùng đã chỉ định (không cho phép người dùng tạo nhiệm vụ quá xa trong tương lai). Mỗi Nhiệm vụ được liên kết với Mẫu Nhiệm vụ thông qua Khóa ngoại. Ý tưởng là SQL sẽ hiệu quả hơn trong việc quản lý các bản ghi này hơn là cố gắng thực hiện tất cả điều này trong mã dựa trên một mẫu. Bằng cách này, bạn sẽ có nhiều lựa chọn hơn khi sắp xếp và lọc dữ liệu của mình. Rốt cuộc, viết một truy vấn SQL dễ hơn viết, kiểm tra và duy trì một hàm PHP thao tác dữ liệu.
Một số mẹo khác mà tôi sẽ cung cấp cho bạn là:
- Cố gắng lấy nhiều thông tin trong bản ghi "Mẫu Nhiệm vụ" của bạn. Giữ lại số tác vụ mà Mẫu bao gồm, ngày tác vụ cuối cùng kết thúc, thời gian trôi qua giữa tác vụ đầu tiên và tác vụ cuối cùng, v.v. "Dữ liệu siêu dữ liệu" này có thể giúp bạn tiết kiệm thời gian truy vấn khi bạn đang tìm cách sắp xếp và lọc nhiệm vụ.
- Đặt một chỉ mục vào trường Ngày và FK, điều này cũng sẽ giúp tăng thời gian truy vấn.
- Tôi vừa xây dựng hai ứng dụng lịch tại nơi làm việc và được các sếp đón nhận khá tốt. Tôi đã sử dụng plugin JQuery "FullCalendar" (http://arshaw.com/fullcalendar/). Tôi đã sử dụng JQuery AJAX để xử lý hầu hết các sự kiện của mình và nó đã hỗ trợ cho chế độ xem Tháng, Ngày và Tuần.