用户帐户的数据库设计

时间:2018-11-14 16:43:47

标签: node.js mongodb mongoose database-design

我正在构建SaaS平台。一个用户只能拥有一个帐户(或一个用户帐户)。这意味着一个用户拥有电子邮件,密码,余额,等级计划。

我感到困惑的是,我应该分开用户帐户设置和等级/余额数据吗?

我应该将其设置为2个单独的模型:用户(电子邮件,密码)和帐户(余额,等级,user_id)吗?

或使其成为一种模型:UserAccount(电子邮件,密码,余额,等级,user_id)吗?

我认为用户模型自从用于身份验证以来就不会经历很多结构上的变化。但是,对于帐户而言,将来可能会有一些变化

2 个答案:

答案 0 :(得分:1)

理想的方法应该是拥有两个不同的Collection,但是在处理MongoDB(NoSQL DB)的情况下,您应该专注于非规范化。 即保持避免更多的收藏和联系。

因此,采用一种模式:UserAccount(电子邮件,密码,余额,等级,user_id)是理想的选择。

答案 1 :(得分:0)

您应该拆分。这就是关注点分离。您有一个用于身份验证的模型,另一个用于用户详细信息的模型。您可以从帐户向用户添加外键。