【发布时间】:2016-07-10 16:32:45
【问题描述】:
我正在尝试在我正在编写的应用程序中设置访问控制。我见过诸如 ACL 和角色/权限系统之类的方法(例如描述的 here 和许多其他方法,以及 Nested Set Model),但我不确定是否可以使用这些方法实现我的目标。
我正在尝试做的是找到一种方法来允许访问对象的子项。问题是孩子存储在不同的表中并代表不同的实体。一个例子:
City > Streets (city_id) > Houses (street_id) > People (house_id)
在这种情况下,这些对象中的每一个都存储在数据库中的不同表中,并使用带括号的字段指向其父对象。我想要做的是能够仅授予用户“城市”级别的权限(即授予城市#10 的权限),这将授予下面各种桌子上的所有孩子的访问权限,无论是街道、房屋、或人。 (因此,我可以询问“用户 A 是否有权访问 16 号房屋?”系统可以确定 16 号房屋是否是 10 号城市对象的子/孙等。)
现在,我知道这可以通过在数据库中使用多个连接等来完成,但这感觉像是一种“蛮力”方法,并且不会非常干燥或可重复使用。如果可能的话,我希望找到一种更有效/不那么天真的方法来实现这一目标。谢谢!
【问题讨论】:
标签: php mysql permissions hierarchy