У меня вопрос: как я могу ограничить действия пользователя ограниченное количество раз в неделю?
Мой случай следующий:
У меня есть мои продукты, и я предлагаю каждому пользователю запросить возврат денег, если продукт не подходит. Проблема заключается в том, что многие пользователи злоупотребляют этим действием и отнимают у меня много времени, чтобы проверить каждый продукт и каждого пользователя, который запрашивает возврат, поэтому я хочу ограничить каждого пользователя возможностью запрашивать возврат только 3 раза в неделю, но я не не знаю как.
У меня есть таблица с именем refnds_count, которая выглядит так
ID || userid || product_id || date
----------------------------------
1 || 7 || 9 || 2016-03-9 12:33:22
2 || 7 || 10 || 2016-03-13 14:40:10
3 || 7 || 11 || 2016-03-13 16:42:15
Таким образом, у пользователя с идентификатором 7 уже есть два запроса на возврат средств на этой неделе, и я не знаю, как сравнить эти данные, чтобы увидеть, сделал ли пользователь 3 запроса уже на этой неделе.
SELECT userid
FROM refunds_count t
WHERE week(now()) = week(t.date)
GROUP BY userid
HAVING COUNT(*) >= 3
Это предоставит список всех пользователей, которые уже сделали 3 возврата на этой неделе.
Вы можете в последний раз фильтровать этих пользователей в вашей системе возврата, что-то вроде
WHERE userid NOT IN(...the query here...)
Других решений пока нет …