gpt4 book ai didi

database - 在数据库中表示用户角色的更好方法

转载 作者:太空狗 更新时间:2023-10-30 01:43:04 24 4
gpt4 key购买 nike

在用户表中更好地表示用户权限还是在其自己的权限表中更好?

用户表中的权限
将权限放在用户表中意味着为用户表中的每个权限创建一列。一个优点是查询应该运行得更快,因为在将用户与用户权限相关联时不需要连接。缺点是拥有许多权限列会使用户表困惑。

Permission 表中的权限以多对多关系连接到 User 表
这样做可以清楚地将权限与用户表分开,但需要跨两个表进行连接才能访问用户权限。数据库访问速度可能较慢,但数据库设计似乎更简洁。

当有很多权限时,也许将权限保存在一个单独的表中会更好。做出这个决定还有哪些其他考虑因素,以及在各种情况下哪种设计更好?

最佳答案

访问控制的标准模式称为基于角色的安全。随着用户数量您需要的不同类型权限数量的增长,管理用户到权限的链接会变得越来越困难。

例如,如果您有五个管理员和五十个用户,您如何使每个组的权限保持同步?当您的一位用户晋升为管理员时,您需要进行多少次编辑?答案是创建两个交集:users-to-rolesroles-to-permissions

在我对this question的回答中描述了这个解决方案(包括实体关系图) .

enter image description here

关于database - 在数据库中表示用户角色的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13102872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com