1对多通知系统
1 to many notification system
我正在寻找正确方向的推动,主要是在数据库方面,但接受任何类型的推动(代码明智!),关于一对多通知系统。
一群用户收到由用户兴趣触发的通知(例如另一个用户)。
例子
- 用户 1、用户 2 和用户 3 对主题 A 感兴趣。
- 主题 A,发布了 activity。
- 用户 1、用户 2 和用户 3 收到来自主题 A 的通知。
- 用户 2 和用户 3 查看了更新,因此他们将不再收到有关该更新的通知。
- 用户 1 仍会收到通知,因为她尚未查看更新。
魔法:
一千个用户可以并将继续收到相同的通知,但如果个人用户查看或与更新互动,他们将停止收到通知。
我的实现
我在我的数据库中构建了一个通知table,例如
id | sender | context | action | receiver | unread
1 | Nobel | Prize | Won | Moi | true #default
当主题 A 触发通知时,我让所有用户都对主题 A 感兴趣,然后将相同的通知添加到 table 但接收者不同。
当用户与更新交互时,"unread column" 更新为 false。
然后当一个特定的用户走进来时(不现实)我 select 来自通知 table 的通知上面有用户名,未读的计数为假,然后以红色显示数字通知气泡。
我的意见
这看起来真的很冗长,而且 table 可以很快增长到一个甚至没有名字的数字,比如 megaZillion。就像如果一个主题有 10,000 个兴趣,10,000 个新记录将被添加到 table 只是因为主题没有在冰箱里找到任何汽水(真实推文)。
问题:
有没有更好的方法。
明显的替代方案是只存储通知一次,并将 read/unread 标志单独存储为 notificationID, userID
对。 "Read" 似乎是一个更安全的选择,因为它可以更好地应对不活跃的用户。
然后您将查询用户感兴趣但没有已读标志的所有通知。
如果您需要为每个用户跟踪所有这些,无论如何都会有很多数据 - 这总是意味着您需要存储用户与每个通知的关系。您最多可以做的就是规范化表格。
我正在寻找正确方向的推动,主要是在数据库方面,但接受任何类型的推动(代码明智!),关于一对多通知系统。
一群用户收到由用户兴趣触发的通知(例如另一个用户)。
例子
- 用户 1、用户 2 和用户 3 对主题 A 感兴趣。
- 主题 A,发布了 activity。
- 用户 1、用户 2 和用户 3 收到来自主题 A 的通知。
- 用户 2 和用户 3 查看了更新,因此他们将不再收到有关该更新的通知。
- 用户 1 仍会收到通知,因为她尚未查看更新。
魔法: 一千个用户可以并将继续收到相同的通知,但如果个人用户查看或与更新互动,他们将停止收到通知。
我的实现
我在我的数据库中构建了一个通知table,例如
id | sender | context | action | receiver | unread
1 | Nobel | Prize | Won | Moi | true #default
当主题 A 触发通知时,我让所有用户都对主题 A 感兴趣,然后将相同的通知添加到 table 但接收者不同。
当用户与更新交互时,"unread column" 更新为 false。 然后当一个特定的用户走进来时(不现实)我 select 来自通知 table 的通知上面有用户名,未读的计数为假,然后以红色显示数字通知气泡。
我的意见
这看起来真的很冗长,而且 table 可以很快增长到一个甚至没有名字的数字,比如 megaZillion。就像如果一个主题有 10,000 个兴趣,10,000 个新记录将被添加到 table 只是因为主题没有在冰箱里找到任何汽水(真实推文)。
问题: 有没有更好的方法。
明显的替代方案是只存储通知一次,并将 read/unread 标志单独存储为 notificationID, userID
对。 "Read" 似乎是一个更安全的选择,因为它可以更好地应对不活跃的用户。
然后您将查询用户感兴趣但没有已读标志的所有通知。
如果您需要为每个用户跟踪所有这些,无论如何都会有很多数据 - 这总是意味着您需要存储用户与每个通知的关系。您最多可以做的就是规范化表格。