1. Таблица всех критериев: id, min, max, desc
2. Таблица ограничений (permissions):
id, "зависит от ограничения (parent):ID", "критерий1:ID", ..., "критерийN:ID", ACL
3. Таблица прав доступа к ресурсам:
id, itemID, typeID, ACL
4. Таблица платных подписок пользователей:
id, "родительское ограничение:ID", userID, expiredAt(когда истекает)
По правам ACL запрошенного ресурса (п.3) находим нужное ограничение для подписок (п.2).
По id подписки ограничения пользователя (п.4) находим id ограничения (п.2).
Затем, проверяем суммарный ACL и дату истечения подписки.
Затем - всё остальное по критериям и ограничениям.