Допустим, социальная сеть => пользователь добавляет друзей после того, как он добавил 30 друзей, то 31 сможет добавить только через 5 минут. Как реализовать?
тоже такое хотель спрашивать от форума.в инете где-то я такое видил
Создать в базе строчку, ласт френдс и ласт френдс тайм, писать туда кол-во друзей добавленных за сутки и обновлять ласт френдс тайм, если кол-во больше 30 - проверяем ласт френдс тайм, если оно + 60 * 5 < time() - всё ок, добавляем очередного друга. Если нет - ошибка.
Ну, и если ласт френдс тайм + 24 часа меньше текущего времени - обнуляем счетчик друзей за сутки.
if ($total == 30 && time() < $time + 300){
// Ошибка
}
Где:
$time = время последнего добавления в друзья
$total = количество друзей
Обычно в таблице с друзьями пишется время добавления друга, соответственно по нему и стоит определять
Добавлено 18.01.15 в 00:17:35:
Тю, автор удалился
Действительно, так даже лучше. Я особо не вникал в это. Но твой способ уменьшит кол-во запросов.
Количество запросов не уменьшит, но не нужно будет каждый раз обновлять "ласт френдс и ласт френдс тайм"
Как раз и уменьшит. Обновление ласт френдс и ласт френдс тайм отдельным запросом должно было быть. А в твоем случае не нужно.
Да, но при добавлении нужно сделать +1 запрос, который будет проверять время и количество друзей