【问题标题】:Database design for user account用户帐户的数据库设计
【发布时间】:2019-04-17 16:53:09
【问题描述】:

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

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

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

或将其设为一个模型:UserAccount(email, password, balance, tier, user_id) ?

我认为用户模型不会在结构上经历太多变化,因为它只是用于身份验证。但是,对于帐户,将来可能会有一些变化

【问题讨论】:

    标签: node.js mongodb mongoose database-design


    【解决方案1】:

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

    所以,拥有一个模型:UserAccount(email, password, balance, tier, user_id) 是理想的选择。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我正在使用 NoSQL MongoDB
      猜你喜欢
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多