我考虑过两种类型的用户通知系统。
他们都有订阅表,用户订阅特定频道 下面的模式用于存储事件的表。
当新事物发生时:
|id| |type| |uid| |read| |created|
1 2 2 0 1234
当该频道发生新事件时,此系统会为订阅频道的每个用户插入一个新行。
缺点:
优点:
当新事物发生时:
|id| |type| |created|
1 2 1234
在这个系统中,它只为一个事件插入一行,即它不是特定于用户的。 然后,用户读取该表并检查该事件是否发生在他的订阅频道中,然后还比较创建的时间是否大于上次读取时间。
缺点:
优点:
您认为哪种情况更适合以下条件:
答案 0 :(得分:1)
我建议结合你的方法。
有一个包含邮件的表,然后是另一个表,用于将这些邮件的每用户状态与用户相关联。例如,您的消息表可能非常简单:
你的另一张桌子可能有:
然后,如果您有该用户的任何其他特定信息,您可以在原始邮件之外跟踪它。如果您更新该原始邮件,则仍会为所有用户更新。