【问题标题】:How should I handle parent and child users in my Postgres db design?我应该如何在我的 Postgres 数据库设计中处理父用户和子用户?
【发布时间】:2021-06-25 14:24:03
【问题描述】:

我正在构建一个针对孩子的平台,可以选择家长注册。普通用户可以访问完整的平台体验,而家长用户只能访问家长仪表板来创建孩子的帐户、管理帐户并查看孩子的活动。

父帐户永远不会成为用户。如果他们想成为普通用户,他们必须创建一个单独的用户帐户。

我可以通过两种方式创建它:

  1. 带有account_type 列的单个users 表。这是我目前拥有的。
  2. 单独的表,usersparents,以及一个与两者都有一对一映射的 accounts 表(用于电子邮件、密码哈希等)。

#2 似乎是更好的长期解决方案。优点是我可以将两者分开发展,缺点是基本的用户查询变得稍微复杂一些。

对这两种方法有什么想法或建议吗?

【问题讨论】:

  • 这将严格基于意见。但至于我的#2。我同意您的专业人士的观点,不同意您的基本用户查询变得稍微复杂一些。两种模式都要求您检索相同的数据。而模式#2 需要简单的内部连接;架构 #1 可能涉及带有属性值验证的左外自连接。

标签: postgresql authentication database-design roles


【解决方案1】:

为什么不直接使用基于角色的用户管理。

您将拥有userrole 模型。

user 模型中,您将有一列roleidrole 模型具有对象类型关系[一对一]。

现在,在您的用户模型中,您将授予父用户(角色帐户)创建子用户(角色帐户)的权限。

问我是否需要进一步的解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    相关资源
    最近更新 更多