Задать вопрос

Как создать-настроить триггер в mysql?

Есть таблица users(id, login, password, date, time, isOnline, onlite_date, online_time);

при авторизации на сайте, пользователем, запускается js скрипт (status.php) который держит постоянное соединение с сервером c задержкой в 10 секунд.

Скрипт status.php:
$uid = (int)$_GET["uid"];
sleep(10);
$query = mysql_query("UPDATE users SET isOnline = "1" online_date = CURDATE(), online_time = CURTIME());


нужно создать-добавить триггер в Mysql что бы при выполнении UPDATE users он перебрал всех пользователей в таблице, и изменил строку IsOneline в ноль если пользователь не обновлял свой статус больше N минут
  • Вопрос задан
  • 2486 просмотров
Подписаться 3 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
syschel
@syschel
freelance/python/django/backend
Вы базу убьёте. При наплыве пользователей и их активности, у вас очередь будет из сотен "триггеров" на обновление всех пользователей. По вешайте лучше на крон пересчёт каждые N минут.

Добавлю, по вашей логике. Триггер запускается когда идёт обновление таблицы юзера. И вы хотите сразу же запустить массовое обновление всех юзеров. Что вызовет по каждому юзеру новую волну обновлений. Вечный цикл.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽