在通知系统中每个通知要插入多少行?

2024-02-03

继从这个问题 https://stackoverflow.com/questions/9735578/building-a-notification-system我正在考虑构建一个类似的通知系统,并且我有一个问题(我认为它有一个明显的答案,但我更愿意有一些其他意见):

如果某个特定帖子获得了一百万个赞,然后有人向该帖子添加了评论,我需要通知那些喜欢该帖子的百万人有关添加的评论。实现这一目标的唯一方法是将一百万行写入NotificationRead表有NotificationID并将它们“发送”给各个用户?

我无法想象任何其他方法可以让我跟踪谁阅读了他们的通知,并且可能在每个通知的每个帖子中插入一百万行,这听起来令人畏惧且昂贵。

还有其他方法吗?我正在使用 SQL Server 2014,我的应用程序服务器是 ColdFusion 2016


首先,如果您需要推送通知,则不可避免的事实是您需要以某种方式通知数百万用户中的每一个。但是,您不一定需要将所有通知存储在服务器上。

人们可以做出一些合理的假设:

  • 大多数活动将发生在最近的帖子上(例如,发布时间不到一周的帖子)
  • 大多数用户不会立即回复通知

这样,您就可以跳过存储最近帖子的通知:当用户登录时,您可以简单地轮询用户最近的帖子以查看是否有任何新活动。当用户登录时,您正在做额外的工作,但这会随着时间的推移而分散。

对于较旧的帖子,您仍然会回退到为每个用户存储单独的通知,但这不应该经常发生。同样,您可以选择保留每个用户最后 N 个通知的列表,而不是为每个通知插入新行。这样,如果用户长时间没有登录,您就不会堆积旧的通知(用户可能根本不关心)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在通知系统中每个通知要插入多少行? 的相关文章

  • 服务作为 SOA 中的中介

    我知道什么是 通常的 中介设计模式 维基百科中有一些描述 http en wikipedia org wiki Mediator pattern http en wikipedia org wiki Mediator pattern 在我的
  • 通知声音不适用于 api 10 android

    我用这个功能来显示状态notification 一切正常 但没有声音播放notification public void notifiction main String ticker String title String text int
  • 在 SQL Server 2005 IMAGE 列中存储 20 Meg 文件的最有效方法

    我们将文档存储在 SQL Server 2005 数据库表中 列格式为 Image 每次我尝试存储大于 1 Meg 的 PDF 文件时 它都会以某种方式损坏 NET 中是否有任何特别有效的方法来序列化大文件 10megs 并将其存储到数据库
  • 取消通知

    我使用Onesignal推送通知 需要取消所有onPause和onResume的通知 NotificationManager notificationManager NotificationManager getApplicationCon
  • java异常处理策略[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么抽象类应该实现抽象基类的抽象方法?

    在下面的示例中 该类Derived实现抽象方法method从课堂上Main 但我想不出在抽象中填写方法体的理由Derived类的实现 当然 我应该只在实际类中实现抽象方法 那么我怎样才能避免这样做呢 我还可以做些什么 abstract cl
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • C# 扩展方法 - 设计模式

    我想知道 C 扩展方法是否基于任何现有的设计模式 设计模式只是一种众所周知的范例 即 当你想实现 X 时 就做 Y 面向对象语言 例如 C 中的一个众所周知的范例是 当您想要对对象的状态进行操作时 调用它的实例上的方法 但是 在创建扩展方法
  • 构建器模式的真实示例

    我想看看 Builder 模式是如何在现实世界的应用程序 API 中使用的 我找到的例子都是披萨 蛋糕 汽车等等 加上 GoF 书中的解析器示例 您能否告诉我这个模式在现实世界的应用程序 API 中的一些用法 最好是来自 C NET 或 P
  • 为什么工厂模式会这样工作?

    我从未真正研究过工厂模式 今天决定花时间根据本文创建一个快速示例 http msdn microsoft com en us library ee817667 aspx http msdn microsoft com en us libra
  • 如何正确设计数据库的这一部分(循环引用?)

    情况 一个公司有很多项目一个项目有很多标签一个项目只属于1家公司一个标签可以属于多个项目公司必须有权访问自己的标签 示例1 在第一张图片中 公司的所有标签都可以通过projects project tag 获得 但如果所有项目都被删除 那么
  • 如何提高环复杂度?

    对于具有大量决策语句 包括 if while for 语句 的方法 循环复杂度会很高 那么我们该如何改进呢 我正在处理一个大项目 我应该减少 CC gt 10 的方法的 CC 并且有很多方法都存在这个问题 下面我将列出一些例如我遇到的问题的
  • 是否有任何库可以解析Java中的“数字表达式”,例如1,2-9,33-

    我不认为这很难 只是写起来很乏味 一些小的免费 如啤酒 库 我可以在其中放入像 1 2 9 33 这样的字符串 它可以告诉我给定的数字是否与该数字匹配表达 就像大多数程序的打印范围对话框一样 仅匹配奇数或偶数 或匹配每个 2 mod 5 或
  • const int 列表而不是 enum

    我开始研究大型 C 代码库 并发现使用带有多个 const ints 字段的静态类 这个类的行为与枚举完全一样 我想将类转换为实际的枚举 但权力被拒绝 我想转换它的主要原因是这样我可以将枚举作为数据类型而不是 int 这对可读性有很大帮助
  • Android 以编程方式停止 toast 通知?

    有没有办法以编程方式停止 Toast 消息 假设我有一个按钮 单击它可以滚动 toast 消息 并且在 onclick 事件中我想停止队列中的所有消息并只显示新消息 我该怎么做 我的代码的简化版本如下 代码 public class Hel
  • iPhone:每日本地通知

    我正在尝试实现本地通知 这就是我所设置的 Current date NSDate date NSDate date Add one minute to the current time NSDate dateToFire date date
  • 包含其他类集合的类的设计(操作方法)

    如何设计涉及其他类集合的类 一般示例 A 工作空间包含数量Projects A Project包含大量资源 Each Resource可能包含大量Files 所以这里标识的类可以是 Workspace Project Resource 和
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • 这种模式叫什么?软锁?

    这是我有时必须编写的一些代码 大部分与 UI 内容结合使用 并且总是与可能意外陷入无限循环的事件相关 public class MyClass public event EventHandler MyEvent private bool I
  • 领域驱动设计和工厂类的作用

    我不清楚工厂类的角色和职责是什么 我知道工厂类应该负责创建域对象 聚合根 及其关联的实体和值对象 但我不清楚 DDD 架构的工厂 层 在哪里 工厂应该直接调用存储库来获取其数据还是服务库 工厂在以下框架中的位置 UI gt 应用程序 gt

随机推荐

  • 如何向 R Shiny 表添加行

    我正在尝试使用 R Shiny 构建一个表单 一旦单击表单末尾的操作按钮 它将用于填充表格 我无法弄清楚如何获取表单中的数据并将其添加到表中的新行中 现在 它只是用表单中的任何内容不断更新第一行 我在这里重现了代码的简单版本 ui r li
  • UITabBarController 中的 UIViewController 和 UISplitViewController shouldAutorotateToInterfaceOrientation

    我的 iPad 代码有一些问题 我有一个 UITabBarController 其中包含一些 UIViewController 和 UISplitViewController 问题是 UIViewController 甚至 UISplitV
  • 使用 Javascript 动态创建具有递增 ID 的 dom 元素

    我有一个 ID 为 orangeButton 的 div 每次单击它时都会创建一个新的 div 这工作正常 但是 我希望每个新创建的 div 都有一个增量编号添加到它的 ID 中 我不知道该怎么做 这是我迄今为止带有注释的代码的小提琴 ht
  • Inno Setup 安装 - 访问被拒绝

    我已经使用 inno setup 创建了一个安装 我的应用程序 除其他外 运行后会在子文件夹中创建一个 pdf 文件 然后打开它 但 Windows 7 说访问被拒绝并弹出异常 怎么了 如何使用 innosetup 授予对子文件夹的访问权限
  • 在 python 中处理 try except 的更简洁的方法

    所以 假设我有 3 个不同的调用something something1 and something2 现在 我称之为 try something something1 something2 except Keyerror as e pri
  • VS2012中“从源代码管理中排除”发生了什么

    我想从 TFS 2012 源代码管理中排除代码文件夹中的某些文件 在 VS2012 之前 这是通过 源代码管理资源管理器 右键菜单中的 从源代码管理中排除 命令来完成的 但在VS2012中我找不到它 有人知道它在哪里吗 顺便说一句 我正在使
  • 将类型限制为特定类型

    是否可以将泛型方法限制在特定类型上 我想写这样的东西 public T GetValue
  • 如何在Android中使用SetGroup()在组中显示通知?

    我尝试过使用 0 通知 ID 以及唯一的通知 ID 还使用了 setGroup 如下所示 它仍然每次都会生成一个新的通知 我想合并通知正文并将标题设置为通用 class MyFirebaseMessagingService Firebase
  • 正则表达式非捕获组 - 无用?

    我试图理解这个概念 但我真的看不出它有什么用 所以我假设我没有抓住重点 例如 这个正则表达式 0 9 st nd rd th 将匹配带或不带 st rd 等后缀的数字 So 1st match 0 9 st nd rd th g 返回 第一
  • 如何在 R 中导出 GBM 模型?

    是否有标准 或可用 方法在 R 中导出 GBM 模型 PMML 可以工作 但是当我尝试使用 pmml 库时 可能是错误的 我收到错误 例如 我的代码看起来类似于 library gbm library pmml model lt gbm f
  • VSCode:用户设置中的 TextMate 正则表达式

    我正在尝试更改主题以更适合我的日常使用 但在尝试自定义特定单词或模式时遇到了一些麻烦 我现在正在使用这种格式 editor tokenColorCustomizations textMateRules scope comment setti
  • 如何使用 Spark 计算累积和

    我有一个 String Int 的 rdd 它按键排序 val data Array c1 6 c2 3 c3 4 val rdd sc parallelize data sortByKey 现在我想以零开始第一个键的值 并将后续键作为先前
  • Eclipse 中的 Jetty 8.1.1.v20120215 和 web 应用程序 (JSF + Maven)

    我正在尝试在 Eclipse 中运行我的 web 应用程序 使用 JSf Jetty 8 1 1 v20120215 我下载了 Jetty Adapter 然后在 Eclipse 中添加了 Jetty Server 8 1 然后我在 Jet
  • 如何开始使用 Perl 进行网页抓取?

    我有兴趣学习 Perl 我正在使用 Learning Perl 书籍和 cpan 的网站作为参考 我期待着使用 Perl 做一些网页 文本抓取应用程序来应用我所学到的东西 请建议我一些好的选择 这不是家庭作业 想要在 Perl 中做一些事情
  • WebRTC、捕获屏幕

    我当前的问题是 我想找到一种在 Android 上的 webrtc 连接期间捕获帧 屏幕截图的方法 我知道这里已经有一些解决方案 但没有一个对我有用 按照我目前的方法 我遵循了这个Gist https gist github com Eri
  • 如何在 Python 中从 JavaScript CryptoJS.AES.encrypt(password, passphrase) 解密密码

    我有一个通过 JavaScript 加密的密码 var password sample var passphrase sample passphrase CryptoJS AES encrypt password passphrase 然后
  • Jenkins Pipeline:查看子构建作业的日志

    我有一个詹金斯管道正在运行 作业 作为其阶段之一 我想知道 有没有一种方法可以查看管道中构建作业的日志 而无需单击作业并查看控制台输出 这只会让您更容易地看到失败 而无需多次点击 是的 有一种方法可以做到这一点 不幸的是它看起来没有记录 T
  • NodeJS - Socket.IO 设置:提供静态内容,无需握手(Rackspace 云服务器上的 Ubuntu)

    我已经在 Rackspace 上安装了 Ubuntu node js 和 Socket IO 当我尝试一个简单的服务器应用程序并尝试使用客户端请求时 我仅得到 提供的静态内容 而不是握手 在调试中的浏览器中 我可以看到 Hello S 在服
  • SQL Server:如何中止查询分析器中的一系列批处理?

    我有一系列由特殊查询分析器批处理分隔符关键字分隔的 T SQL 语句 GO 如果一个批次失败 我需要查询分析器不要尝试后续批次 我希望它停止处理这一系列批次 例如 PRINT This runs go SELECT 0 0 This cau
  • 在通知系统中每个通知要插入多少行?

    继从这个问题 https stackoverflow com questions 9735578 building a notification system我正在考虑构建一个类似的通知系统 并且我有一个问题 我认为它有一个明显的答案 但我