Для каждого юзера пишешь время его последнего обращения. При запросе на количество он-лайн юзеров находим количество тех, чье время не более определенного. Например, не более 15 минут от текущего времени. Только я не понял, что там
n58oo предлагает удалять при таком подходе?
Если юзеров мало, то можно вести такой подсчет при каждом запросе на количество .
Если же юзеров много (что более вероятно для хорошего сайта), а соответственно много запросов, то можно подойти по-другому. Запускаем подсчет он-лайновых юзеров по крону, допустим 1 раз в минуту. Пишем данные в отдельный файл, таблица из БД тут не нужна. И читаем данные из этого файла. При большом количестве юзеров количество будут достаточно точное, зато мы не будем постоянно "дёргать" БД. Только 60 раз за час. Можно и раз в 30 секунд подсчет вести, конечно
Это уже зависит от желания и потребностей в "точности".
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)