在识别联系人时,比较,查找和返回大量移动号码的最有效方法是什么?

时间:2017-03-17 16:35:40

标签: sql django search registration django-rest-framework

假设我的数据库中有1000个用户的数据,并且有新用户注册。我希望他们能够轻松找到已注册的联系人 - 通过他们的电话号码。与WhatsApp,Allo,Instagram,Twitter等非常类似的东西 - 它们允许您查看已经使用其服务的联系人。

数据库存储用户名和联系信息 - 姓名,号码等。如果X注册200个联系人,我是否要将200个中的每一个与现有的1000个进行比较?

当然,采用我的新用户的200个联系人并将每个联系人与现有的1000个记录进行比较是一种更好的方法。其他服务如何管理?我应该维护哪种特定的数据结构进行搜索?

在这种情况下,树或图结构是否会更有效?如果是这样,我该如何实施呢?

我正在使用DRF进行后端实施。

我已经四处寻找,但我似乎没有找到解决这个问题的好方法。

1 个答案:

答案 0 :(得分:1)

您的内容位于数据库中。您不需要计算出用于存储信息的最有效数据结构;你的数据库引擎已经做到了。并且它比你做得更好。 (这不是个人侮辱;数据库存储和检索信息的方式比任何人都好。)

最终,您需要将200个新数字中的每一个与数据库中的1,000个数字中的每一个进行比较。但是,您不必知道如何有效地完成这项工作。只要询问数据库是否存在任何这些数字,它将(我保证)找出最有效的方法来实现它。

对于拥有数百万条记录的数据库,问题的答案是“这个值是否已经存在?”应该还会在最短的时间内回归。