Есть скрипт который опрашивает статус пользователя каждый 5-10 минут, в сети он или нет. Если в сети - 1, нет - 0. Скрипт простой и по необходимости можно внести логику.
база состоит из таблиц с именами пользователей: u1, u2...
структура таблицы:
- `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`status` tinyint(4) NOT NULL
Проблемы:
1. Тупо собирать 1 и 0 очень накладно. На одного пользователя выходит порядка 300 строк в сутки. Поэтому можно немного хитрить. Допустим в 12:00 user1 online, пишем в БД (1), а в 15:30 ему валить пора, тогда и пишем в базу новую строку (0). Более экономично, даже если user1 будет часто туда-сюда "бегать".
2. Как высчитать, время онлайн или офлайн по каждому пользователю? Не пойму, как сложить эти интервалы
Могу переделать все с нуля, просто не могу понять, как лучше реализовать, чтобы БД не распухла через месяц и в человеко понятном виде смотрелось
Возможно где-то есть уже похожее, я бы поковырялся.