Автор Тема: Форум PHP+MySQL  (Прочитано 20717 раз)

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

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Форум PHP+MySQL
« Ответ #30 : 14 Октября 2003, 16:09:11 »
Юкко, при таком подходе получается, что если я прочел одну ветку, я прочел ВСЕ.

hanslinger не надо юродствовать и придираться к словам.
Здесь и так слишком много непоняток, чтобы новые вносить.
прочитанные == отображенные на странице.

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Форум PHP+MySQL
« Ответ #31 : 14 Октября 2003, 16:16:58 »
Почему?
1) У нас есть lastvisit, сохраняемый в профайле пользователя.
2) Есть отдельная таблица, в которой записаны столбцы (минимальные): thread_id, user_id.
3) Делаем выборку из всех топиков, обновленных позже lastvisit и на которых наш user не был. Надо только подумать, как ее грамотно сделать. Я, кажется, почти придумал.

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Форум PHP+MySQL
« Ответ #32 : 14 Октября 2003, 16:18:59 »
Под словом "минимальные" я имел в виду: "минимум эти столбцы".

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Форум PHP+MySQL
« Ответ #33 : 14 Октября 2003, 16:20:07 »
Цитировать
я прочел ВСЕ.

а вот и нет, ты прочел только те, которые занесены в таблицы ид_пользователя-ид-треда
те топики, которые ты не прочел, но они были изменены, у них будет дата обновления больше даты твоего последнего захода на форум, плюс по алгоритму hanslinger\'a :)  при обновлении топика, мы удаляем все пары ид_пользователя-ид_данного_топика т.е. для всех пользователей тред становится непрочитанным :) при его обновлении, если тред необновлялся и нет записи твой_ид-данный тред, то ты его не читал, если тред не обновлялся и есть запись твой_ид-данный_тред, то его уже читал...
работа в Украине

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Форум PHP+MySQL
« Ответ #34 : 14 Октября 2003, 16:24:26 »
Мне такой подход более чем нравится :)

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Форум PHP+MySQL
« Ответ #35 : 14 Октября 2003, 16:25:50 »
NAS, спасибо за ссылку!

Оффлайн NAS

  • Неопытный юзер
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2951
  • +1/-0
  • 1
    • Просмотр профиля
    • http://nhouse.ru
Форум PHP+MySQL
« Ответ #36 : 14 Октября 2003, 16:30:17 »
Цитировать
hanslinger:
1) У нас есть lastvisit, сохраняемый в профайле пользователя.
2) Есть отдельная таблица, в которой записаны столбцы (минимальные): thread_id, user_id.
3) Делаем выборку из всех топиков, обновленных позже lastvisit и на которых наш user не был. Надо только подумать, как ее грамотно сделать. Я, кажется, почти придумал.

Если lastvisit форума, то все равно будут пропущенные сообщения

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Форум PHP+MySQL
« Ответ #37 : 14 Октября 2003, 16:37:06 »
Только те, которые были добавлены во время пребвыания пользователя на форуме, если я правильно понял... значит, делаем по-другому: В той нашей таблице три столбца thread_id|user_id|visittime. Здесь вроде ничего теряться не должно...

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Форум PHP+MySQL
« Ответ #38 : 14 Октября 2003, 16:41:46 »
NAS
мы вроде уже сошлись на том, что при таком раскладе все сообщения отследить нельзя, и ветка незаметно перешла на обсуждение можно ли отследить таким образом непрочитанные треды... т.е. зная время захода пользователя на форум и имея таблицу которую предложили в начале, я утверждаю, что могу отследить непрочитанные треды, даже если пользователь зашел на форум, но ничего в тредах не читал. Как? я объяснил постом выше... а если в треде есть новые сообщения, то их количество будет => количеству сообщений со времени последнего визита до данного врмени.

Кажется так... если в рассуждениях есть ошибка, укажите.
работа в Украине

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Форум PHP+MySQL
« Ответ #39 : 14 Октября 2003, 17:26:00 »
Yukko, я тормоз, хе-хе :)

Цитировать
hanslinger:
Время-то не обязательно. На каждый добавленный в топик пост стираешь все из этой таблицы для этого топика. На каждый просмотр - добавляешь строку с юзером

Этот метод не покатит, и обсуждать его бессмысленно :-)
вообще, никак не покатит.

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Форум PHP+MySQL
« Ответ #40 : 14 Октября 2003, 17:29:10 »
RomikChef извини, и я тогда тормоз, я не понимаю, почему не покатит, никто не говорит использовать только одну! таблицу для определения прочитанных топиков, насчет сообщений я давно уже согласился, что это невозможно :)
работа в Украине

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Форум PHP+MySQL
« Ответ #41 : 14 Октября 2003, 17:32:06 »
А почему бы и не одну использовать? Я тормоз тоже :) Но топики-то отслеживаются нормально!

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Форум PHP+MySQL
« Ответ #42 : 14 Октября 2003, 18:23:59 »
а сколько таблиц ты хочешь, Юкко?

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Форум PHP+MySQL
« Ответ #43 : 14 Октября 2003, 18:33:49 »
RomikChef
Смотри,
таблица Пользователи там мы храним время последнего захода каждого пользователя.
таблица Треды, там два поля, которые нас интересуют, есть все равно, один время создания, второй время изменения (можно время только изменения и булевое поле 0/1 изменен или нет, если 0, то тогда время изменения автоматически равно времи создания)
и таблица, которую предложили в начале где храним ид_пользователя и ид_темы, которую он просмотрел...

Т.е. поля во всех таблицах и так стандартные, но если нам не важно точное количество ответов в треде после последнего туда захода, а важно только читал тред или нет (новые сообщения в треде), то мы избавляемся от одного поля в последней таблице, т.е. время прочтения данного треда пользователем.
« Последнее редактирование: 14 Октября 2003, 18:41:10 от Yukko »
работа в Украине

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Форум PHP+MySQL
« Ответ #44 : 14 Октября 2003, 18:40:22 »
Yukko
Так мы же получим количество ответов, отталкиваясь от времени его последнего посещения! Сообщения со временем, большим этого, и будут нашими. А читал тред или нет, узнаем из отдельной таблицы. Но, по-моему, мой метод проще.

 

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