Ваш вопрос охватывает слишком много тем (дизайн, алгоритм и программа), чтобы получить четкий ответ.Пожалуйста, посетите https://stackoverflow.com/faq)
Вам не нужно использовать «кварцевый» планировщик, но он один из самых простых и полезных (мы его используем).cron / at может быть достаточно в вашем случае.
После того, как вы внедрите планировщик, запланируйте задание на каждый день с фиксированным временем (нет смысла запускать его каждый час, если пользователи не находятся в нескольких часовых поясах. Задание должнопроверьте, есть ли какие-либо записи (из ISSUEBOOK) с датой исполнения в старом, чем текущее время.
следующий запрос может дать приблизительное представление о получении
select user.email from STUDENTACCOUNT user, ISSUEBOOK rentals
where user.<id> = rentals.loginid --assuming a foreign key
and rentals.duedate < now -- mysql built in function
Получить уникальные записи, а затемотправляйте письма.
Пожалуйста, работайте над проектом и задавайте конкретные вопросы.