阻止用户查看旧数据MySQL / iOS

时间:2015-07-14 15:59:33

标签: ios mysql

我正在使用允许用户上传和下载图片的应用。与Snapchat类似,他们可以查看他们所关注的人的照片。 24小时后,这些照片将被移动到存档表中,以便用户将无法再看到它们。我用mysql分区完成了这个方面。

但是,在客户端,我需要不断更新mysql查询,其中包含照片表中最后一行的日期。我将此日期存储在iOS应用程序中。如果用户注销并允许其他人登录,则会出现问题。我必须清除此数据,并且现在还没有为任何一个用户提供参考点。

我有解决方案来解决这个问题,我想知道它是多么可行。我会创建一个触发器,每次用户检索照片时都会运行。它将更新用户表上的一列,该列将保存他们查看的最后日期。这样,当任何用户重新登录时,我将引用他们查看的最后日期。这是一个好主意吗?我对如何改进这种方法提出了任何建议,看看我需要如何保存图片而不是仅仅删除图片。

*请注意分区可以正常工作,但因为我需要确保照片持续至少24小时,一些照片最终会持续超过24小时,这样用户仍然可以看到照片

照片表

* id:二进制16

* users_id:foreign:binary 16

* filename:varchar

* created_at:datetime

照片存储在亚马逊s3上

1 个答案:

答案 0 :(得分:0)

添加列

Post.joins(:comments).uniq.where('.user_id = ?', user.id).count # => 9
Post.joins(:comments).uniq.where('comments.user_id != ?', user.id).count # => 20

在上传时将可见设置为1。 还将now()放入created_at datetime。

创建活动见下文:

http://www.mysqltutorial.org/mysql-triggers/working-mysql-scheduled-event/

每天或每隔6小时运行一次,无论如何。可以改为cron任务。

当该东西运行时,对于超过1天的任何东西,它都设置为0。

当用户看到某人的个人资料图片时,他们只看到可见的= 1张图片。

发布图片的人看到了他所有的照片。

所以它是自动化的,你可以在开关处睡着了。