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