php - 如何处理事件流中已删除的照片

标签 php mysql social-networking

在我们的应用程序中,用户可以上传照片。此上传事件注册为事件并推送到用户的“关注者”事件流中。

使用的流程和技术如下:

  • 用于存储的 MYSQL 后端(上传图像的 URL 与一些元数据一起存储在 photos 表中)
  • 事件生成并存储在 MYSQL 的事件表中
  • GEARMAN 作业已创建,该作业将事件 ID 发送到 REDIS,其中该事件 ID 被扇出到所有用户关注者,以便填充他们的事件流。
  • 我们通过从 REDIS 获取事件 ID 数组,然后在 MYSQL 中执行简单的 IN 查询来检索流。
  • 在用户事件流中,可以看到图像的小裁剪版本。

现在这一切都运行得非常好,并且与多个缓存层一起帮助保持系统非常稳定和可扩展。

但是,对于选择删除一张或多张照片的用户来说,什么是最好的处理方式。目前,当他们删除照片时,所有关注者都会在其事件流中收到损坏的图像链接。

因此我们需要在两种处理方法之间进行选择。

  1. 将 Activity ID 存储在照片表中,并在用户删除该照片时删除与该照片相关的 Activity。这会很好地工作,但偶尔会看到用户的事件从他们的信息流中删除。
  2. 在照片表中将图像标记为已删除,并在生成流时显示“此图像已被用户删除”消息。

哪种方法被认为是最好的方法?为什么?或者人们会推荐其他更好的方法来处理这个问题吗?

非常感谢。

最佳答案

IMO 最好使其尽可能透明。告诉其他用户该图像已被删除,并提供从事件流中删除该条目的选项。这样用户就可以保持控制并且不会在后台发生“魔法”。也许对于非常旧的条目(无论这在当前意味着什么),您可以自动删除该项目。但我总是更愿意获得相应的信息。

关于php - 如何处理事件流中已删除的照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15292236/

相关文章:

php - 将策略模式与环境变量 Laravel 一起使用

mysql - 如何在 MySQL 中使用单个选择查询更新多个列?

r - R中的基本SNA? - 如何加载网络数据

关于 Facebook 等社交网络的数据库模式

rest - 使用自己的 API 后端处理社交网络身份验证

javascript - 如何让 select onchange 事件在页面加载时发生?

php - 处理来自 php 和 jQuery 的 json 变量,改为给出文本变量

javascript - WordPress admin-ajax.php 总是返回 0

mysql - 在 mySQL 中创建多列约束而不是 ALTER

mysql - 为什么我的 EclipseLink 查询结果缓存不工作