【发布时间】:2019-01-18 22:14:11
【问题描述】:
在使用电话身份验证的应用中,例如 whatsapp:
当任何用户打开查看他/她的联系人时,whatsapp 将仅显示您手机中正在使用 whatsapp 的联系人(就像他们过滤了您的联系人一样)。
我对实现类似的想法:
我可以将所有用户保存在数据库中(当他们使用我的应用程序进行身份验证时),现在当我在活动中加载联系人时,我会检查联系人是否存在于数据库中,如果用户存在,那么我添加他/将她列入名单。
问题:
如果我使用上述方法:
假设我在数据库中有 10,000 个用户,那么每次我想在我的应用中显示用户的联系人时循环遍历 10,000 个用户是没有意义的。
问题:
你认为像 whatsapp 这样的应用程序是如何实现这样的事情的?
【问题讨论】:
-
您询问的搜索可能使用数据库中的索引来显着提高速度。正如您所说,它不会对每个用户进行线性搜索,因为这会花费太多时间。在您第一次查找用户后,您可以将其存储在您自己的数据库中。
-
@Code-Apprentice 如果我在一次阅读后将它们存储在本地,那么如果我列表中的联系人删除了他/她的帐户,该如何处理?
-
您可以定期遍历本地数据库中的用户,以检查他们是否被删除/停用。
-
在这里查看我的答案:stackoverflow.com/a/64399981/13124119