存储用户的个人资料详情

我期待存储在我的应用程序的用户的configuration文件的详细信息,如他们的出生date,国家,名字,姓氏,他们join的date,他们的profile_pic的位置等。我在Expressjs应用程序中使用mongoose。 我也将存储用户名和散列的密码,如果他们已经从他们的电子邮件地址激活。 我有几个问题,我感到困惑,不知道该怎么办?

  • 我应该存储所有的用户在一个mongoose模型,并有一个激活的列,如果用户已经从它的电子邮件链接激活或者我应该有两个不同的表,并且一旦用户已经激活,我把他从非激活表移动到激活表。

  • 第二件事是想知道我应该存储configuration文件的细节作为列在相同的模型或创build另一个模型的configuration文件的细节使用人口。 我在想,因为这些细节有什么我需要查询。 他们基本上只是读写而已。 我不查询使用这些参数。 所以我想,让他们在不同的模式会稍微好一些,因为我会一直只查询用户名或密码。 我认为可能的另一个select是在子文档中使用它们。

  • 我也将存储我的应用程序的用户喜好,我有上面相同的概率。

请帮我select什么样的select。 我已经做了很多的阅读,但不知道截至目前。 请帮助我标准的事情做什么,什么会更好

谢谢

是的,将所有用户存储在一个mongoose模型中,并activated一个字段。 这样可以简化一些可能的数据库查询,比如获取所有用户的列表(激活或不激活),或者检查用户名是否被占用。

您还应该将configuration文件的详细信息存储为相同模型中的字段。 如果您不使用这些参数进行查询,请不要对它们编制索引。 在我看来,将它们作为子文档并不是那么有用,只有计划为每个用户设置一组configuration文件(多个configuration文件)才有意义。