LINUX.ORG.RU

(не)прочитанность тем

 , , ,


0

4

Вот есть же прочитанные темы. А есть непрочитанные...

А как это обычно хранят? Список прочитанных тем хранят для пользователей. Или хранят список пользователей которые читали тему. Не могу точнее сформулировать - пьян, а как раз это надо реализовывать (((

★★★★★

Последнее исправление: Suntechnic (всего исправлений: 2)

Я храню отдельную таблицу тема+пользователь+дата посещения. Время хранения ограничено (сейчас — три месяца, вообще — зависит от объёмов, посещаемости и возможностей железа).

Соответственно, возникает несколько комбинаций:

В таблице есть запись, время последнего посещения больше времени модификации (времени последнего ответа) темы — тема «не обновлялась».

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

В таблице нет записи — считаем тему посещённой (чтобы древние темы не считались новыми).

...

У меня ещё есть признак: если время посещения == -1, то обновления в теме игнорируются, она всегда считается посещённой (чтобы не читать неинтересные темы).

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

У тебя получается, что если создать новую тему, то она будет считаться посещённой, т.к. записи в отдельной таблице нет.

blackst0ne ★★★★★
()
Ответ на: комментарий от blackst0ne

У тебя получается, что если создать новую тему, то она будет считаться посещённой

Криво сказал :) Если дата модификации темы больше, чем время хранения (тема новая), то тема не посещённая. Если меньше (теме старше периода хранения) — то посещённая.

KRoN73 ★★★★★
()
Последнее исправление: KRoN73 (всего исправлений: 2)
Ответ на: комментарий от KRoN73

У меня ещё есть признак: если время посещения == -1, то обновления в теме игнорируются, она всегда считается посещённой (чтобы не читать неинтересные темы).

вот так и не учитываются мои темы, которые я посещал 31 декабря 1969 в 23:59 :(

feofil
()

Ставь темы на слежку. :) Потом столько интересного начитаешь.

hbars ★★★★★
()
Ответ на: комментарий от KRoN73

Ок. Это третий способ. Хороший.

Но в силу специфики мне надо хранить только факт - посещал или не посещал тему пользователь. Возникает соблазн хранить всё либо в теме (как объекте) или пользователе.

Отдельный вопрос , почему я не говорю о таблицах - это позже опишу (не с телевизора).

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от blackst0ne

Ссылки на первый непрочитанный комментарий генерируешь на лету?

Просто есть модификатор page=new (вместо page=1, page=512, page=...) и при переходе по нему уже смотрим наличие записи в БД и её логику.

KRoN73 ★★★★★
()
Ответ на: комментарий от Suntechnic

Но в силу специфики мне надо хранить только факт - посещал или не посещал тему пользователь.

Без хранения времени визита пользователем темы никак нельзя узнать, обновилась она с его посещения или нет. А хранить 1 байт или 8 — разница не велика. При больших объёмах можно просто уменьшать период хранения.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Без хранения времени визита пользователем темы никак нельзя узнать, обновилась она с его посещения или нет.

А и не надо.

При больших объёмах можно просто уменьшать период хранения.

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

Suntechnic ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.