Твиттер как «следуй за пользователем» и «смотри это»

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

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

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

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

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

11.12.2008 06:00:50
1 ОТВЕТ

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

3
11.12.2008 06:43:05
Блин, писал ту же идею :)
Vinko Vrsalovic 11.12.2008 06:45:24
Таким образом, нет таблицы "уведомлений" .. вместо этого я проверяю на индивидуальной основе?
Sam 11.12.2008 06:51:07
Я предполагаю, что вы хотите уведомить пользователя о каком-либо событии, например, когда он входит в веб-интерфейс или запрашивает его через службу REST. Вы бы просто проверили все записи о наблюдениях конкретного пользователя, когда они должны быть уведомлены.
joshperry 11.12.2008 07:15:17