Озадачен похожей задачей. Плюс покупки дискретных услуг: оплатил 5x – может пять раз выполнить некое премиум действие. Но их считать проще, отдельным полем у юзера.
А вот что выделаете, если есть разные по уровню тарифные планы: беспл., Про и Суперпро.
По середине оплаченного срока Про, клиент покупает (внезапно) план СуперПро на месяц.
Месяц вы предпочитаете считать календарный, 30 или 31 день?
Закончился месяц СуперПро – клиент докатывает полмесяца на просто-Про?
Сергей Соколов
@sergiks Автор вопроса, куратор тега Алгоритмы
Смешивать их в граф некруто, потому, что нет смысла в соединениях юзер-юзер или сообщество-сообщество. Вот как бы выглядел граф для приведённого примера:
Сергей Соколов
@sergiks Автор вопроса, куратор тега Алгоритмы
уходим в детали архитектуры, а не алгоритма. У меня задача именно без серверных БД, уже имея на руках исходные данные, найти наиболее «тяжёлые» подгруппы, масса считается как (число юзеров * 2 + число сообществ). При этом хочется сократить вложенность циклов.
Задача представляется относительно типовой, но не знаю как называется, где искать алгоритм.