只向每个用户提供一次文档的方法



创建一个只向用户显示文档的应用程序的最佳方法是什么,例如Tinder。

每个人(即文件(只向每个用户提供一次。在用户对另一个人(对文档(执行操作后,该文档将不再显示给同一用户。

建立这样一个系统的最佳方法是什么?

  • 存储已看到的文档ID,并将其发送到搜索引擎中进行筛选。这种方法似乎很糟糕,因为您最终可能会向搜索引擎的过滤器查询中发送数千个ID
  • 将已对文档采取操作的用户的ID存储在文档内的文件中,并在搜索查询中发送用户ID,请求从所述字段中筛选出文档。这种方法可以使文档的大小大大增加,因为文档中可能存储了数千个ID
  • 为每个用户创建一个包含必要文档的索引,并在用户对文档采取操作时从索引中删除这些文档。这里的缺点是很难维护和更新潜在的数千个索引
  • 将查看的文档存储在数据库的用户对象中,并查询文档。获得结果后,根据用户对象存储的内容,让控制器从列表中跳过或删除用户已经看到的文档。这里的缺点是,您可能最终检索到20个结果,而所有20个结果都已被用户看到

必须有一种更好的方法来构建这种类型的应用程序,它可以更好地扩展。

有什么想法吗?

当我即将构建一个tinder风格的应用程序时,我也在想这件事。我相信答案是,你只需根据账户创建日期按降序请求所有用户。如果您正在访问的数据库有分页,您将一次收到100。然后你有一个缓冲区,在那里你可以决定你将向应用程序的用户显示什么以及按什么顺序显示。显示后,您将在本地删除它。只要你跟踪从远程服务器上收到的最后一个用户的日期,你就可以不断要求更多,而不必处理重复。

最新更新