【发布时间】:2016-12-31 12:51:29
【问题描述】:
我的应用程序的功能类似于 Tinder。我将完成工作流程。
- 应用加载 10 个
Hunts(如 tinder 配置文件) - 用户接受或拒绝它
- 一旦用户接受或拒绝,搜索就会被移除(标记为已看到,这样它就不会再次出现)
- 当
Hunts计数变为 2 时,应用会加载接下来的 10 次搜索。 (这不是第二页,因为seen的搜索已经被删除)
这是棘手的部分。当它再次查询数据库时,该搜索将有 2 个用户尚未接受或拒绝的搜索。为了避免重复,我避免从响应中进行前 2 次搜索。但是,如果在再接受或拒绝之后运行查询,则会出现问题。我会删除 2 个预期正常行为的狩猎,但这会删除一个不重复的狩猎。
最好的解决方案是获取某个id之后的所有狩猎。我可以通过传递ID来使用WHERE NOT ID IN。但我想知道是否有更好的解决方案,因为我认为这将是一个非常常见的情况。
我希望我说得很清楚。
我想过但不是很喜欢的解决方案
- 将 2 次搜索中的
ids传回并在结果中排除它们 - 在我的应用收到回复后,从
hunts中删除重复项
欢迎所有建议。我正在使用Rails,所以也欢迎active record 解决方案。
【问题讨论】:
标签: mysql sql ruby-on-rails