Mongodb 如果需要,每次在字段或查询中保存追随者数量
我想创建一个类似Twitter的应用程序。现在我有一个关于这个项目数据库架构的问题。我想在他/她的个人资料(如Twitter)中显示每个用户的关注者/关注者数量,但我不知道每次都必须从关注者/关注者表/集合中查询,或者该值可以是用户记录中两个单独的小字段?如果我每次都查询,肯定会占用很多时间和数据库开销。另一方面,如果我为每个用户保存两个字段,当有更改时,我必须执行两个操作,修改关注者或下表以及用户记录中的这两个字段。我的数据库将是巨大的和非常大的数据量Mongodb 如果需要,每次在字段或查询中保存追随者数量,mongodb,database-design,mongoose,database,Mongodb,Database Design,Mongoose,Database,我想创建一个类似Twitter的应用程序。现在我有一个关于这个项目数据库架构的问题。我想在他/她的个人资料(如Twitter)中显示每个用户的关注者/关注者数量,但我不知道每次都必须从关注者/关注者表/集合中查询,或者该值可以是用户记录中两个单独的小字段?如果我每次都查询,肯定会占用很多时间和数据库开销。另一方面,如果我为每个用户保存两个字段,当有更改时,我必须执行两个操作,修改关注者或下表以及用户记录中的这两个字段。我的数据库将是巨大的和非常大的数据量 哪种方法是好的和标准的?好吧,这取决于它
哪种方法是好的和标准的?好吧,这取决于它是为谁准备的 如果是你的用户,他们可以看到他们有多少追随者。只有当用户登录到您的服务时,我才会调用这个twitterapi 如果出于某种原因,必须为所有用户执行此操作。我认为最好的方法是执行此api调用,例如每小时一次、每秒钟一次或每天一次。这可以通过在cron中运行的脚本来实现 你真的需要追随者还是仅仅关注追随者?或者两者都有 如果两者都有,您可以请求Twitter用户的关注者,并将其限制为100(如果您的cron每分钟运行一次,则每15分钟运行一次)。然后根据数据库循环这些跟随者ID,并继续插入它们,直到匹配为止。Twitter默认返回所有最新的追随者id:s。所以这在此刻是可能的 请记住,在请求追随者时,您只能针对Twitter API对每个用户发出15个请求令牌。此限制在不同端点之间可能有所不同 值得一提的是,我假设您只获得跟随者ID。那些你一次可以得到5000英镑。如果要请求跟随者对象,则每个请求的限制仅为200
希望这有帮助:好吧,如果你想知道什么是正确的,只有一个答案
请注意,如果您有数百万用户,这并不意味着您每个用户有数百万追随者。请注意,您的文件将被编入索引,因此您不会追踪1600万用户来统计25个关注者,您的索引将允许您在极少数页面中最多25个索引行中识别25个关注者。这种担忧在商业平台上根本不存在,它是没有平台的人的担忧。你知道,我根本不想使用Twitter!我只是创建了我自己的应用程序,这是一个类似twitter的服务,它有自己的数据库。我想知道哪种方法是正确的?谢谢。我不想去,也不能去企业服务部。我必须在自己的服务器上设计自己的体系结构。然后你说,如果我有很好的指数,那就没什么大不了的了?我不想有一个缓慢的服务。第一年,我可能有200万用户。@Fooder。对(a) 编辑您的问题,包括CREATETABLE命令的完整DDL,包括索引,我将给您确认或更正它们的命令。(b) 你不断重复用户数量,我必须重复每个用户数量的跟随者。@Fooder。请投票重新开始这个问题。太棒了。在问题被回答四个小时后,五个人投票决定结束这个问题,证明它不是“太宽泛”或“回答太长”。“民主”在起作用。