Автор Тема: Новые сообщения на форуме  (Прочитано 7526 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Banisher

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
Новые сообщения на форуме
« : 10 Февраля 2004, 09:04:31 »
Сорри, что влезаю, но как мне кажется у меня есть вполне топичный вопрос :-)
Я тут задумывался об алгоритме нахождения новых сообщений для пользователя, но так ничего путного и не придумал... Есть одна идея, но не знаю, может можно и лучше. В общем, при заходе на страницу, основываясь на дате последнего посещения, в таблицу или/и куки пишутся все темы которые имеют новые сообщения и по прочтении такой темы её идентификатор удаляется из таблицы/кук.
Буду благодарен за любую инфу по этому вопросу.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #1 : 10 Февраля 2004, 10:40:51 »
в куки ты
это не запишешь

Цитировать
Banisher:
основываясь на дате последнего посещения

последнего посещения ЧЕГО?

Оффлайн Banisher

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
Новые сообщения на форуме
« Ответ #2 : 10 Февраля 2004, 12:29:55 »
Цитировать
последнего посещения ЧЕГО?

конкретного форума конкретным юзером :-)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #3 : 10 Февраля 2004, 12:33:30 »
то есть, я зашел на форум, мне показало, к примеру, й0 новых сообщений, дату записали.
Я, ничего не читая, с форума ушел.
А потом снова пришел.

Мне кажется, что такой алгоритм не сказать, чтобы очень для пользователя удобный.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #4 : 10 Февраля 2004, 12:47:19 »
хотя, конечно, это лучше, чем ничего.
всех затрат - одна кука со временем.

Оффлайн Banisher

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
Новые сообщения на форуме
« Ответ #5 : 10 Февраля 2004, 12:56:49 »
RomikChef,
Дату, конечно, новую записали. Однако в таблице осталась запись о непрочитанных сообщениях: цитирую себя:
Цитировать
в таблицу или/и куки пишутся все темы которые имеют новые сообщения и по прочтении такой темы её идентификатор удаляется из таблицы/кук.

Я себе это так представляю:
1. Приходит пользователь, пишем ему в специально обученное поле список ID\'ов тем, где для него есть новые сообщения, основываясь на дате его последнего визита на форум.
2. Как только он что-то читает проверяем есть ли в этом поле ID темы, которая для него новая. Если да, то удаляем ее идентификатор из списка новых, для него, тем.
3. Пишем новую дату "последнего" посещения.

Таким образом, даже если он уходит с форума не прочитав ни одного нового сообщения, или прочитав их не все в его учетной записи остается информация о непрочитанных темах.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #6 : 10 Февраля 2004, 18:59:01 »
писать (не в поле, конечно, а в отдельную таблицу) айдишники тем, которые надо просмотреть, не очень удобно.
лучше записывать время просмотра темы.

Оффлайн Banisher

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
Новые сообщения на форуме
« Ответ #7 : 11 Февраля 2004, 08:54:00 »
RomikChef,
Я так понимаю, что таблица будет содержать приблизительно следующие поля:
1. идентификатор пользователя
2. идентификатор темы
?3. Время просмотра темы
Так? Но почему
Цитировать
лучше записывать время просмотра темы

Ведь идентификатор темы все равно нужен в этой таблицы (вроде как без него не обойтись)? Зачем тогда вводить в таблицу еще одно поле?
it4all,
Цитировать
а как насчет моих проблем,у тебя их нет

_твоих_ проблем у меня действительно нет... я же не ты :-)))
А если серьезно, то на данный момент для меня проблема с составлением запросов, в данный момент, остро не стоит. Так что я ман по мускулу почитаю лучше, оно полезней будет.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #8 : 11 Февраля 2004, 11:14:09 »
Banisher он с той точки зрения претензию предъявгяет, что ты в его тему влез. Если ты еще не забыл.
в общем - справедливо.
Цитировать
Banisher:
Но почему

Ну, раз ты любишь самостоятельные изыскания, то я не буду портить тебе удовольствие ;-)

Оффлайн Banisher

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
Новые сообщения на форуме
« Ответ #9 : 11 Февраля 2004, 11:55:22 »
Так с запросами вы
Цитировать

переехали в базы данных
http://forums.webscript.ru/showthre...&threadid=15725

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #10 : 11 Февраля 2004, 12:10:54 »
Banisher
тем не менее в чужую тему ты влез.
Хотя тема отметки непрочитаных сообщений весьма сама по себе тема обширная и мало, кем изученная.
Мной, к примеру - только теоретически.

И вообще, я не понимаю, что движет людьми, которые пишут - "чтобы не создавать новую тему". А в чем криминал-то?
Мне просто интересно.
Есть у тебя вопрос. Почему бы не создать? Денег у тебя, что ли требуют? Почему задать вопрос в существующей тебе кажется легче, чем в новой? Мне вот это интересно. Не пытался анализировать?

Оффлайн Banisher

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
Новые сообщения на форуме
« Ответ #11 : 11 Февраля 2004, 13:10:49 »
RomikChef,
Ладно проехали.
it4all, Доставлять тебе какие-либо неудобства меньше всего входило в мои планы. Так что, если тебя что-то задело, звиняй.

ЗЫ. Тем не менее я заинтересован в продолжении обсуждения проблемы отметки непрочитанных сообщений.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Новые сообщения на форуме
« Ответ #12 : 11 Февраля 2004, 13:34:25 »
ну ладно.
я вынесу в отдельную тему.
а ты пока подумай над ней :-)

Оффлайн Banisher

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
Новые сообщения на форуме
« Ответ #13 : 16 Февраля 2004, 00:48:19 »
RomikChef
Где обещанная тема? :-)
« Последнее редактирование: 16 Февраля 2004, 09:14:27 от Banisher »

Оффлайн Banisher

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
Новые сообщения на форуме
« Ответ #14 : 16 Февраля 2004, 13:49:16 »
RomikChef
tnx, что тему перенес.
Так вот, повторюсь зачем в таблице хранить дату? - Это раз.
И два: Я так полагаю, когда происходит выборка тем для отображения страницы следует сравнивать id\'ы тем которые я собираюсь отобразить с id\'ами тем, которые новые для пользователя и в случае истинности условия писать, что тема новая?
Я так прикинул, получается так:
1. Выборка в массив из таблицы "новых тем" id\'ов тем которые пользователь не читал

2. добавление в этот же массив id\'ов тем, в которых дата  последнего поста больше чем дата последнего посещения юзером форума, если этого id\'а уже нет в массиве

3. Пишем в таблицу "новых тем" получившийся массив

4. Выборка отображаемых тем, по неким условиям и если id темы находящийся в этой выборке равен одному из id\'ов в массиве, то пишем, что в этой теме есть новые сообщения

5. Пишем текущую дату и время в запись пользователя в таблице пользователей в поле "время последнего посещения"

6. Когда пользователь читает тему, помеченную как "новая", для этого пользователя, удаляем запись о ней из таблицы "новых тем".

И второй вариант: хранить в таблице темы которые пользователь просмотрел...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28