Скрипт недавнего посетителя - PullRequest
0 голосов
/ 07 ноября 2011

Привет, друзья! Я создаю социальную сеть, и я застрял в недавнем модуле для посетителей. Любой из них может помочь мне с базой данных и функционированием. Я много пытался, но я не смог понять логику. В orkut есть эта функция. и я не знаю, что нужно сделать, чтобы сделать этот модуль.

логика застревает на том, что я предполагаю, что посетитель с посетителем uid предположим, что 2 посетит пользователя, предположим, что 3 тогда, на каком основании мой uid будет храниться в базе данных и как будет выполняться процесс. *

1 Ответ

1 голос
/ 07 ноября 2011

Я полагаю, что вы что-то напутали.

Сначала вы должны создать, если у вас ее еще нет, таблицу сессий, чтобы получить метки времени зарегистрированных пользователей.Вы должны создать таблицу «друзей», чтобы соединить 2 разных пользователей - это дружба - чтобы показать только своего друга, который недавно вошел в систему.

Итак, пользователь выполняет вход в систему, и вы вставляете его в сеанс.таблица идентификатора пользователя.Когда вам нужно показать свою «панель» с последним другом, который недавно вошел в систему, вы должны сделать запрос из 2 таблиц: дружба и сессия, что-то вроде этого:

session (session_id, uid, lastTimeLogged) 
         where lasTimeLogged is a Timestamp column

friendship (uid, uid_friend) 

uid_friend будет uid(пользователь) идентификатор друга (1 - друг 2, 1 - друг 3 и т. д.).

Чтобы получить недавно зарегистрированных "друзей"

SELECT uid_friend FROM friendship
INNER JOIN session
ON friendshio.uid_friend = session.uid 
AND lastTimeLogged < DATE_SUB(CURRENT_TIMESTAMP, 30 MINUTE)
WHERE uid = logged_user_id

Это должно получитьпоследние зарегистрированные друзья за последние 30 минут.Это всего лишь пример того, как это должно работать.Я тоже не проверял код SQL.Надеюсь, что это поможет вам!

РЕДАКТИРОВАТЬ - получить последние 10 посетителей за последний месяц

SELECT uid_friend FROM friendship
INNER JOIN session
ON friendshio.uid_friend = session.uid 
AND lastTimeLogged < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 MONTH)
WHERE uid = logged_user_id
ORDER BY lastTimeLogged DESC

Это поможет.Примечание: код не был проверен!

...