Если следить нужно только за новыми сообщениями (изменения не интересуют) - то, на мой взгляд, проще всего сделать так :
есть список топиков, за которыми следит пользователь (пользователей много, топиков много - значит надо организовать связь многие ко многим) - вводим таблицу, состоящую из 3-х столбиков :
id пользователя
id топика
last_cnt сколько постов в топике было, когда его прошлый раз смотрел пользователь
тоесть из этой таблицы можно выбрать как все топики, на которые подписался человек, так и всех людей, подписавшихся на этот топик
далее ввести поле у каждого топика, в котором прописывается количество постов внутри, при добавлении нового поста - плюсовать значение этого поля, при удалении - минусовать
Ну и при разнице между last_cnt в новой таблице для конкретного пользователя и cnt у топика - делать выводы, добавились там посты или удалились или что
ps
нужно продумывать кэширование, будут возникать проблемы при добавлении и удалении постов в одном топике одновременно, много чего ещё нужно продумать, но ход мыслей, думаю, ясен. Отслеживать дату последнего обновления, использовать куки (на этом форуме куки используются для отображения новых сообщений в топиках) - много что можно использовать (Отредактировано автором: 17 Апреля, 2009 - 10:32:44)
|