我希望在我的应用中存储用户的个人资料详细信息,例如他们的出生日期,国家/地区,名字,姓氏,他们加入的日期,他们的个人资料的位置等。 我在Expressjs app中使用mongoose。我还将存储用户名和哈希密码,如果他们已从他们的电子邮件地址激活。我有几个问题,我感到困惑,不知道该怎么办?
我是否应该将所有用户存储在一个mongoose模型中,并且如果用户已经通过其电子邮件链接激活了,则将列激活为c或者我是否有两个不同的表,一旦用户激活我移动他从未激活的表到激活表。
第二件事是想知道我应该将配置文件的详细信息存储在同一模型中的列中,还是使用填充为配置文件详细信息创建另一个模型。我在想这个,因为这些细节有我需要查询的内容。它们基本上只是用于读写。我不查询使用这些参数。所以我认为在不同的模型中使用它们会稍微好一些,因为我总是会查询用户名或密码。我认为可能的另一个选择是将它们放在子文档中。
我还将存储我的应用的用户偏好,我的概率与上述相同。
请帮我看看我应该选择哪个选项。我已经做了很多阅读,但现在还不确定。请帮我解决标准事情和更好的事情
谢谢
答案 0 :(得分:1)
是的,将所有用户存储在一个mongoose模型中,并带有activated
字段。这样就简化了一些可能的数据库查询,例如获取所有用户的列表(已激活或未激活)或检查是否已使用用户名。
您还应将配置文件的详细信息存储为同一模型中的字段。如果不使用这些参数进行查询,请不要将它们编入索引。在我看来,将它们作为子文档放在那里并不是那么有用,只有你计划为每个用户设置一组配置文件细节(多个)才有意义。