1

我希望在我的应用程序中存储用户的个人资料详细信息,例如他们的出生日期、国家/地区、名字、姓氏、他们加入的日期、他们的 profile_pic 的位置等。我在 Expressjs 应用程序中使用猫鼬。我还将存储用户名和哈希密码,以及他们是否已从他们的电子邮件地址激活。我有几个问题让我感到困惑,不知道该怎么办?

  • 我是否应该将所有用户存储在一个 mongoose 模型中,如果用户已从其电子邮件链接激活,则有一列用于激活 c 或者我是否应该有两个不同的表,一旦用户激活,我将他从未激活的表移到激活表。

  • 第二件事是想知道我应该将配置文件的详细信息存储为同一模型中的列,还是使用人口为配置文件详细信息创建另一个模型。我在想这是因为这些细节有我需要查询的任何东西。它们基本上只是用于读写。我不使用这些参数进行查询。所以我想把它们放在不同的模型中会更好,因为我总是只查询用户名或密码。我认为可能的另一种选择是将它们放在子文档中。

  • 我还将存储我的应用程序的用户偏好,并且我有与上面相同的概率。

请帮助我选择什么选项。我已经读了很多书,但目前还不确定。请帮助我做什么标准的事情,什么会更好

谢谢

4

1 回答 1

1

是的,将所有用户存储在一个带有activated字段的猫鼬模型中。这样您就可以简化一些可能的数据库查询,例如获取所有用户(激活或未激活)的列表或检查用户名是否已被使用。

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

于 2013-06-28T17:03:22.243 回答