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

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

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Форум PHP+MySQL
« Ответ #45 : 14 Октября 2003, 18:44:31 »
hanslinger
читай тред с самого начала, я написал, чему буде равняться количество непрочитанных сообщений...
работа в Украине

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

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

Значтак.
в теме новое сообщение.
записей в таблице нет.
Его просмотрели два человека.
в таблице две записи.
в тему добавили сообщение.
записи стираем.
еще трое просмотрели.
три записи.

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

"пометить, как прочитанное" - работает...

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

еще мысли будут?

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Форум PHP+MySQL
« Ответ #47 : 14 Октября 2003, 18:47:19 »
Количество непрочитанных при таблице из двух полей мы не получим. НИКАК.
абстрактное время посещения одного из тредов никак нам не поможет.

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Форум PHP+MySQL
« Ответ #48 : 14 Октября 2003, 19:03:48 »
RomikChef:
так, я, кажется, тоже заморочился... :)

Цитировать
RomikChef:
тут приходит злобный, хе-хе, модератор, и удаляет новое сообщение

да, вот тут накладочка... согласен.

Все остальное расписано верно :)

Цитировать
RomikChef:
Количество непрочитанных при таблице из двух полей мы не получим

с этим я согласен уже давно :)

Общий вывод: можно улучшить работу, например, данного форума, и сэкономить на одном поле, добавив только таблицу из двух полей...
работа в Украине

Оффлайн hanslinger

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

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Форум PHP+MySQL
« Ответ #50 : 14 Октября 2003, 19:23:57 »
Цитировать
Если таблица Пользователи содержит поле твоего последнего визита, а она думаю содержит, и рядом с каждым сообщением, как, например, тут пишется время отправки сообщения (для этого есть поле в таблице Сообщения), то непрочитанные сообщения - все сообщения из топиков, которые обновили (т.е. для этого топика нет записи твой_ид_пользователя-ид_топика), которые попадают в промежуток между временем твоего последнего захода и текущим временем твоего нового захода...

Вот я об этом говорю. Уже который раз. И все катит.

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Форум PHP+MySQL
« Ответ #51 : 14 Октября 2003, 19:45:52 »
hanslinger
объясняю отдельно почему не покатит, ты зашел на форум и ушел, время lastvisit изменилось? да. но ты ничего не прочитал... теперь смотри дальше, для каждого форума мы знаем 100% только, что в нем есть новая для данного пользователя информация. Определяем мы это по отсутствию записи вида
ид_пользователя|ид_треда
в специальной таблице.  

есть тред, который создан в 10.00
в нем сообщения со временем создания
10.00
12.00
13.00
ты зашел на форум, но ничего не читал (ни один тред!) в 13.00 и ушел
за это время созданны сообщения в
15.00
16.00
17.00
18.00
потом зашел в 19.00 считал время своего последнего посещения, оно будет равняться 13.00
вычисляешь количество непрочитанных сообщений, путем выборки сообщений в треде которые созданны во временных рамках 13.00-19.00 таких сообщений получится 4, а реально ты не читал те сообщения, которые были созданы до твоего первого прихода т.е. еще в количестве 3 штуки, таким образом количество непрочтенных сообщений всегда больше либо равно тому количеству сообщений, которые ты вычислил предложенным тобой способом.
работа в Украине

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Форум PHP+MySQL
« Ответ #52 : 14 Октября 2003, 19:49:22 »
Простите дуру грешную, забываю все об этом. Тогда http://forums.webscript.ru/showthread.php?s=&postid=91241#post91241. Я писал. Об этом говоришь? Тогда все должно получаться, ведь для каждого топика в отдельности время записывается. И если зашел, значит читал. Все. Вроде я разобрался с окончательной моделью. Или что-то я недопонял?

Оффлайн Yukko

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

так я кажется догнал и тебя... тут смешался разговор, отдельно вели разговор про топики, а отдельно вели разговор про сообщения.
Топики можно определить, что они непрочитанные! сообщения нет...
т.е. согласно того, что я тебе нарисовал постом (сообщением) выше, топик будет считаться непрочитанным по-любому, но количество сообщений ты не посчитаешь, потому что для каждого сообщения (гипотетически) для каждого треда(практически), надо сохранять время, когда его человек читал последний раз. Т.е. в 19.00 ты зашел, но так как для того треда нет вообще записи, что ты его посещал, тогда все! сообщения будут новыми, но теперь представь схему, что ты зашел на приведенный выше тред в 11.00, т.е. прочитал одно сообщение, потом пришел в 13.00 и не прочитал ничего, а потом пришел в 19.00.
Представил?
теперь для того, чтобы узнать СКОЛЬКО СООБЩЕНИЙ ты не прочитал (не факт а количесво) тебе надо знать время КОГДА_ТЫ_ЧИТАЛ_ДАННЫЙ_ТРЕД оно равняется 11.00, и оно же отличается от времени КОГДА_ТЫ_ПОСЛЕДНИЙ_РАЗ_ПОСЕТИЛ_ФОРУМ, оно равняется 13.00
Для того чтобы хранить время, КОГДА_ТЫ_ЧИТАЛ_ДАННЫЙ_ТРЕД, надо еще одно поле, на чем мы захотели сэкономить :) и успешно сэкономили за счет потери некоторой функциональности.
работа в Украине

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Форум PHP+MySQL
« Ответ #54 : 14 Октября 2003, 20:50:17 »
Гм. Я, кажется, тебя тоже догнал. А может быть, сделать таблицу "thread_id|user_id|time" и не стирать значения, а проверять, есть ли строчка вообще. Если есть, тогда сверять время визита на топик и время последнего поста в нем, а если нет, то просто записывать? Так разве плохо? Или я опять что-то упустил? :)

Оффлайн Yukko

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

Оффлайн hanslinger

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

Кстати, с кого началось обсуждение сэкономленного поля? =))))

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Форум PHP+MySQL
« Ответ #57 : 15 Октября 2003, 09:26:50 »
офигенный тред.
как бы его в избранное занести? ;-)

Оффлайн NAS

  • Неопытный юзер
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2951
  • +1/-0
  • 1
    • Просмотр профиля
    • http://nhouse.ru
Форум PHP+MySQL
« Ответ #58 : 15 Октября 2003, 10:54:05 »
Цитировать
RomikChef:
как бы его в избранное занести? ;-)

Идем в избранное и жмем кнопку править :)

 

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