Я создаю сайт.У него есть группы, к которым пользователи могут присоединиться.
Разница между этой и "обычной" группами заключается в том, что членство является временным - когда пользователь присоединяется к группе, он определяет продолжительность членства: 5 дней, неделя, 2недели и т. д. (выбор заранее определен).Или, возможно, все членства могут иметь одинаковую продолжительность, скажем, неделю, если это упрощает задачу.
Я бы хотел подсчитать количество членов в каждой группе.Число не должно быть точным до последней секунды.Но он также не может быть слишком устаревшим - скажем, должен обновляться один раз в день.
Кажется, что "очевидный" способ подсчета числа участников - это запуск cronработу, скажем, ежедневно, и пройти через каждого члена каждой группы по одному.Если срок действия членства истек, удалите этого участника из группы и уменьшите число членов группы на 1.
Такой подход кажется очень неэффективным и не очень масштабируемым.С большим количеством групп это может занять вечность.
Можете ли вы придумать лучший способ сделать это?Количество участников не должно быть точным с точностью до секунды.Это может быть приблизительным и (немного) устаревшим.Также, если это имеет значение, все членства могут быть одинаковой продолжительности, скажем, в неделю.