我应该使用ObjectID还是uid(由我自己实现)来识别用户?

时间:2013-07-02 13:08:14

标签: mongodb user-identification database

我是mongodb和数据库的新手。 实现一个函数来uid并使用本地ObjectId。 哪个更好?

2 个答案:

答案 0 :(得分:1)

您应该将ObjectID生成留给客户端/驱动程序。这可确保生成的ID在许多内容中是唯一的,例如时间,服务器和进程。使用标准ObjectID还意味着驱动程序实现的方法(例如getTimestamp())可以正常工作。

但是,如果您正在考虑将_ em>自己的类型的ID用于_id字段(即,不是标准的ObjectID类型),那么这是一个可行的选择。例如,如果您想存储有关Twitter用户的信息,那么使用用户的Twitter ID作为_id值非常有意义。就个人而言,我尝试尽可能少地依赖ObjectID类型,因为通常集合将在每个文档中都有一个唯一标识每个文档的字段。

答案 1 :(得分:0)

这取决于三件事:

  • 其来源
  • 您在哪里以及如何使用用户ID?
  • 个人意见。

我个人认为对象ID足够好,但是回到第一点和第二点。

如果此ID出现或将用于其他数据库(如SQL数据库),您可能会发现使用递增ID是一个好主意,但SQL和其他技术人员完全支持十六进制形式的对象ID。

如果这个ID可以像帐号一样使用(当你打电话时想想你的汽车保险帐号)你可能会发现一个对象ID太难以让你的用户记住/回忆这样的更人性化的ID可能更适用于此。

所以这实际上取决于如何使用这个ID。