1

处理多对多触发关系的最佳方法是什么,例如 Twitter“关注此用户”问题。

我对用户“观看”线程的回复有类似的问题。如果有 10,000 个用户在观看一个帖子,并且有人回复,那么如何最好地通知观看者?我能想到的只有以下几点:

插入后,检查“监视表”[字段:user_id,thread_id] 是否有任何匹配此线程 ID 的线程。这是我需要通知的用户列表。对于每个需要通知的用户,在“通知表”[字段:user_id、message、addon 等]中插入一行。现在我可以通过这个表向任何用户显示他们的通知。

问题是,这一切听起来非常非常昂贵。尤其是 10,000 刀片部分。

必须有更好的方法来做到这一点......想法?

4

1 回答 1

3

在您的监视表中,您可以添加一个last_updated字段并在监视线程更新时进行设置。还要添加一个字段last_notified,当你通知用户时设置这个,你就会知道如果你需要通知用户last_updated > last_notified。当您决定需要通知用户时,只需向他们显示来自线程的所有消息,并带有post_date >= last_updated.

于 2008-12-11T06:43:05.600 回答