Народ, есть интересный вопрос.
Я делаю приложение, в котором пользователи будут получать кое-какие нотификации по расписанию. Причем каждый пользователь сам себе будет составлять расписание в формате:
{:first-hour 10
:last-hour 17
:step 1}
Что можно прочитать как: «Я хочу получать уведомления с 10:00 до 17:00 каждый 1 час».
Вопрос в следующем: как мне хранить расписания для каждого пользователя, но главное - как эффективно делать лукап по базе и выбирать тех пользователей кому нужно отправить уведомление? (вопросы часовых поясов пока не поднимаем для упрощения картины).
Первая идея была в том, чтобы на основе таких расписаний генерить группы а-ля:
{:9 [«user1», «user2» …]
:10 [«user18», «user22» ..]
…}
И потом каждый час типа «Ага, сейчас 10 часов, значит надо взять все user-id из группы
10 и
от
править им уведомления.
Как быть?)