hell0w0rd
Продвинутый новичок
Интересуют именно повторяющиеся события. С днями/неделями все ок.
У нас есть начальная дата и смещение, как-то так:
Вроде можно получить задачи на сегодня. А что если у задачи повтор раз в месяц/год?
Я полагаю что можно хранить номер дня, а для года еще и номер месяца. Но что делать с 31 числом к примеру?
И главное как проектировать базу, нужно ли выделять в отдельную таблицу такие задачи?
Сейчас накидал только это:
Но это покрывает только то, что можно расчитать по дням
У нас есть начальная дата и смещение, как-то так:
PHP:
SELECT * FROM calendar WHERE DATEDIFF(start_date, CURRENT_DATE()) % repeat_offset = 0
Я полагаю что можно хранить номер дня, а для года еще и номер месяца. Но что делать с 31 числом к примеру?
И главное как проектировать базу, нужно ли выделять в отдельную таблицу такие задачи?
Сейчас накидал только это:
PHP:
CREATE TABLE `calendar` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`start_time` time NOT NULL,
`end_time` time NOT NULL,
`start_date` date NOT NULL,
`repeat_offset` int(11) unsigned DEFAULT NULL,
`subject_id` int(11) unsigned DEFAULT NULL,
`archive` tinyint(1) DEFAULT '0',
PRIMARY KEY (`id`),
KEY `subject_id` (`subject_id`),
CONSTRAINT `calendar_ibfk_1` FOREIGN KEY (`subject_id`) REFERENCES `subjects` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;