AlikDex: по ссылке - ДА, полуторный(1.5) я бы сказал)))
Еще: "select * ............" не делайте, если Вам нужен только флаг (true/false): ставьте точное поле!
AlikDex: Даю подсказку: стучаться каждые N-секунд - не нужно. Достаточно это делать 2 раза за максимальное время сессии или по событию. Иначе - юзер считается неактивным и по истечении времени сессии Вы смените в БД его поле на OffLine.
AlikDex: Возможно Вы вообще ничего не понимаете: Вам было сказано, что есть 3 варианта и можно из них сделать так, как необходимо.
Других вариантов - нет и быть не может!
Никита Каменев: Спасибо! Как Вы верно заметили: всегда лучше всего отталкиваться от бизнес-задачи. Обычно, я использую для себя нужный микс (дерево событий) на основе всех 3-х пунктов. (иногда что-то убирая или добавляя)
littleguga: при выключении - сохраняете время, а при включении - снова продолжаете.... Вы системные часы используете уже как таймер, а не как стартовое значение.