gpt4 book ai didi

mongodb - 使用 mongo ObjectId 作为用户 ID 是不好的做法吗?

转载 作者:IT老高 更新时间:2023-10-28 13:26:00 24 4
gpt4 key购买 nike

鉴于此值是唯一的,并且对 mongo 数据库中的所有用户都存在,因此在 Web 应用程序中将其用作用户标识符是否有任何特别的注意事项?

我可能正在考虑的具体问题包括将来是否需要转移用户。

最佳答案

... are there any particular caveats to using this as a user identifier in a web application?

我见过的一些:

  1. 这对于 URL 来说不是很好。 Twitter 给了我一个类似 http://twitter.com/gatesvp 的 URL , 使用 ObjectId 你会得到一个类似 http://example.com/ab12ab12ab12ab12ab12ab12 的 url .
  2. ObjectId 分片非常差。它不是真正随机的,它有点顺序,因此新用户将聚集在分片上而不是随机分布。
  3. 您通常需要另一个唯一标识符。大多数网站都要求唯一的电子邮件或唯一的用户名。是的,您可以在“用户名”上创建一个唯一索引,但是您有两个唯一索引,一个很有用,一个只是一个随机数。
  4. 您将在任何地方引用此内容。您的用户数据通常会分布在多个集合中,所有集合都带有指向“userId”的指针。拥有 ObjectIds(或 Guids)意味着您不断地在各处复制粘贴这些大 ID,并将它们存储在数据库中。

Particular issues I may be considering include if in the future the users need to be transferred.

转移到哪里?一旦您开始在 MongoDB 中存储用户的数据,ID 将是您转移到另一个数据库的最少问题。所有现代数据库都可以处理某种形式的字符串或二进制作为主键 ID,因此您的传输应该可以正常工作。但大部分复杂性与 ID 无关。

关于mongodb - 使用 mongo ObjectId 作为用户 ID 是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11697631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com