我有以下表结构:
Entity
---------------------
id | name
Users
---------------------
id | name | password
UserGroups
---------------------
id | parent_id | name
Users_UserGroups
---------------------
user_id | user_group_id
Roles
---------------------
id | parent_id | name
Users_Roles
--------------------
user_id | role_id
主要目标是创建Entity
具有以下条件的行级访问限制:
1) 用户创建Entity
- 他可以看到它(他是所有者)
2) 用户组成员也可以看到它(但如果其他定义 - 看不到 - 它将是用户私有的)。所以记录可以是用户或组私有的,也可以是公共的——所有人都可以看到记录。例如,用户在销售团队 A 中,有记录可以看到所有组成员,但可能有一个或多个记录只能看到用户 - 可能是潜在客户。
3) 例如,用户 A 是角色salesman
,并且该角色是父角色的子角色sales managers
。然后作为sales manager
角色的用户可以看到用户 A 实体。角色的层次结构。老板可以看到他的直接员工在做什么:)
4) 也会有profile
表格,可以将配置文件添加到角色,如果需要,也可以添加到用户。
主要问题是如何将用户/组/角色/配置文件与实体相关联?以及如何定义权限?我的想法是在Entity
. 查询Entity
记录时,查找用户,查看用户属于哪个角色、组、个人资料等。但我认为它太复杂了,也许有更简单的方法,不需要很多额外的表。我将不胜感激:)