我正在建模一个需要包含多用户帐户功能的数据库模式:
多用户帐户允许多个用户登录到同一个帐户 帐户,以便根据他们的权限级别完成工作。 这意味着可以为您维护一个帐户 整个营销团队。帐户所有者可以添加尽可能多的用户 他/她想要并限制他们每个人拥有的权限。您可以 为每个用户选择一个角色:客户经理,营销主管, 营销助理等...或创建自定义权限。
目前我有一个用户表,用户名和密码等存储通用用户的信息。如何实现多用户帐户功能?是否可以在users表中添加一个额外的字段来表示该角色?是否需要单独的表格?我想在可能的情况下使用保持这种简单的原则,但不知道如何处理这个问题。
答案 0 :(得分:0)
每个用户都被分配到一个组,这是正确的吗?在这种情况下,user
表可以有一个groupid
,它是user_group
表的外键,列出了您拥有的所有访问角色。
现在group
(groupid)可能拥有许多他们可以(或不能)在系统上执行的“访问权限”,这可以由您定义。您可以将其称为默认的访问权限集。
如果您想创建自定义权限,最好至少阅读这个问题/前两个答案:
Best Practice for Designing User Roles and Permission System?
在讨论按位运算符的第二个示例中(如果您正在执行此自定义,没有第一个答案中讨论的框架的帮助),假设您理解该概念,这很有趣。实际上,您正在总结十进制整数,但它们将以二进制形式进行比较,以了解为给定用户授予的角色。您可以使用此概念来定义每个预设groupid
对预定义角色的访问权限。
答案 1 :(得分:0)
对于Oracle,我们有#34; Virtual Private Database"。对于SQL Server / Azure,我们有" Row Level Security"。无论您使用哪种RDBMS,请检查类似功能。这种情况最有效。