假设我的数据库中有1000个用户的数据,并且有新用户注册。我希望他们能够轻松找到已注册的联系人 - 通过他们的电话号码。与WhatsApp,Allo,Instagram,Twitter等非常类似的东西 - 它们允许您查看已经使用其服务的联系人。
数据库存储用户名和联系信息 - 姓名,号码等。如果X注册200个联系人,我是否要将200个中的每一个与现有的1000个进行比较?
当然,采用我的新用户的200个联系人并将每个联系人与现有的1000个记录进行比较是一种更好的方法。其他服务如何管理?我应该维护哪种特定的数据结构进行搜索?
在这种情况下,树或图结构是否会更有效?如果是这样,我该如何实施呢?
我正在使用DRF进行后端实施。
我已经四处寻找,但我似乎没有找到解决这个问题的好方法。
答案 0 :(得分:1)
您的内容位于数据库中。您不需要计算出用于存储信息的最有效数据结构;你的数据库引擎已经做到了。并且它比你做得更好。 (这不是个人侮辱;数据库存储和检索信息的方式比任何人都好。)
最终,您需要将200个新数字中的每一个与数据库中的1,000个数字中的每一个进行比较。但是,您不必知道如何有效地完成这项工作。只要询问数据库是否存在任何这些数字,它将(我保证)找出最有效的方法来实现它。
对于拥有数百万条记录的数据库,问题的答案是“这个值是否已经存在?”应该还会在最短的时间内回归。