什么是用户>对象权限的理想结构。
我已经看到了许多有关一般权限的相关帖子,或者用户可以访问哪些部分,其中包含一个users
,userGroups
和userGroupRelations
或类似的东西。
在我的系统中,可以创建许多不同的对象,并且每个对象都必须能够打开或关闭。例如,以具有组和子组的密码管理器为例。
Group 1
Group 2
Group 3
Group 4
Group 5
Group 6
Group 7
Group 8
Group 9
Group 10
每个组可以包含一组密码。可以授予用户对任何组的读取、写入、编辑和删除权限。可以在任何时间点创建更多组。
如果有人有权访问某个组,我应该能够让他拥有所有子组的权限,或者将其限制在该组。
我目前的想法是有一个用户表,然后是一个权限表,其列如下:
permission_id (int) PRIMARY_KEY
user_id (int) INDEX
object_id (int) INDEX
type (varchar) INDEX
admin (bool)
read (bool)
write (bool)
edit (bool)
delete (bool)
这在过去是有效的,但我正在构建的新系统需要能够快速扩展,我不确定这是否是最好的结构。这也使得让某人拥有一个组的所有子组权限的想法变得更加困难。
用户/管理员的角色将有一个单独的表,这意味着他们可以更改他们可以控制的组下用户的权限。
那么,作为一个问题,我应该使用上述结构吗?或者有人可以指出我更好的方向吗?
编辑
另一种方法是为每种类型的对象创建一个权限表。