реализация скрипта проверки прочитаных/непрочитанных новостей пользователем

Corvin

Новичок
реализация скрипта проверки прочитаных/непрочитанных новостей пользователем

подскажите, как более грамотно реализовать проверку прочитаных/непрочитанных новостей(и т.п.) при входе пользователя на сайт.Т.е.:"новых новостей на сайте: 21"

- Проверять по дате последнего захода... не точно, Тогда много новостей отсекается, к примеру если в последний раз он зашел,вышел, зашел - новых новостей НЕТ.

- Записывать в базу все прочитанные(либо непрочитанные) новости, не вижу рационального здесь решения... Каждую загрузку разбирать/собирать массив из базы..

Какие есть еще варианты? Может как то можно соптимизировать удобно вариант 2?
 

Дмитрий Попов

Guest
Есть SQL-функция count, есть sql-оператор join.
осталось создать к таблице новостей таблицу, связывающую прочитанную новость и ID пользователя.

После этого сделать выборку числа записей, для которых нет записи в таблице связей, с ID текущего пользователя.
Проблем возникнуть, надеюсь не должно?
 

Corvin

Новичок
это же получится огромная таблица,
количество новостей(ID) * количество пользователей(ID)

И каким образом использовать JOIN c COUNT,
все можно сделать одним запросом?
 

Линк

Guest
ну во первых:
авторизируюцца ли юзвери? если нет - то их ID можно хранить у них в куках
иначе - на сервере

во вторых:

И каким образом использовать JOIN c COUNT,
все можно сделать одним запросом?
[SQL]
Select *,count(news.id) from users left join chitalki on chitalki.usr_id=users.id left join news on news.id=chitalki.news_id
group by users.id
[/SQL]

вроде бы так.

http://www.mysql.com/doc/ru
 
Сверху