在数据库中代表用户角色的更好方式

问题描述 投票:11回答:2

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

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

权限表中的权限已以多对多关系连接到用户表中通过这种方式可以将权限与用户表完全分开,但是需要跨两个表进行联接才能访问用户权限。数据库访问可能较慢,但数据库设计似乎更干净。

当权限很多时,将权限保留在单独的表中可能会更好。做出此决定时还有哪些其他考虑因素?在各种情况下哪种设计更好?

database database-design user-permissions
2个回答
23
投票
基于角色的安全性。随着

both用户数量和您需要的不同类型的权限数量的增加,用户到权限链接的管理变得越来越困难。

例如,如果您有五个管理员和五十个用户,如何使每个组的权限保持同步?将您的一个用户提升为管理员后,需要进行多少次编辑?答案是创建两个交叉点:用户到角色和

角色到权限。

在我对this question的回答中描述了此解决方案(包括实体关系图。)><< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9ha3dCci5qcGcifQ==” alt =“在此处输入图像描述”>

4
投票
© www.soinside.com 2019 - 2024. All rights reserved.