Твиттероподобная проблема «следуй за пользователем» и «следи за этим» - PullRequest
1 голос
/ 11 декабря 2008

Какой лучший способ справиться с отношениями триггера «многие-ко-многим», такими как проблема Twitter «следуй за этим пользователем».

У меня похожая проблема с пользователями, которые "смотрят" темы за ответами. Если за темой наблюдают 10 000 пользователей, и кто-то отвечает, как лучше всего уведомить наблюдателей? Все, что я могу думать, это следующее:

После вставки проверьте «таблицу наблюдения» [fields: user_id, thread_id] для любого потока, совпадающего с идентификатором этого потока. Это список пользователей, которых я должен уведомить. Для каждого пользователя, которого необходимо уведомить, вставьте строку в «таблицу уведомлений» [поля: user_id, message, addon и т. Д.]. Теперь я могу показать любому пользователю свои уведомления через эту таблицу.

Проблема в том, что все это звучит очень и очень дорого. Особенно 10000 вставок.

Должен быть лучший способ сделать это ... идеи?

1 Ответ

3 голосов
/ 11 декабря 2008

В вашей таблице отслеживания вы можете добавить поле last_updated и установить его при обновлении отслеживаемого потока. Также добавьте поле для last_notified, установите его, когда вы будете уведомлять пользователя, вы будете знать, что нужно уведомить пользователя, если last_updated > last_notified. Когда вы решите, что вам нужно уведомить пользователя, просто покажите ему все сообщения из цепочки с post_date >= last_updated.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...