Я пытаюсь настроить управление доступом в приложении, которое я пишу. Я видел такие подходы, как ACL и Roles/Permission (например, описанные here и многие другие, а также Nested Set Model), но я не уверен, могу ли я выполнить свою цель, используя эти подходы.Контроль доступа в разных таблицах с родительскими/дочерними отношениями
То, что я пытаюсь сделать, это найти способ разрешить доступ к детям объекта. Уловка заключается в том, что дети хранятся в разных таблицах и представляют разные объекты. Пример:
City > Streets (city_id) > Houses (street_id) > People (house_id)
В этом случае, каждый из этих объектов хранятся в другой таблице в базе данных, и указывает на его родителей с полями в скобках. То, что я хочу сделать, - это предоставить права пользователя только на уровне «Город» (например, разрешения на грант для города № 10), который предоставит доступ ко всем детям на разных таблицах внизу, будь то улица, дом, или человека. (Итак, я могу спросить что-то вроде «Имеет ли пользователь А разрешение на дом № 16?», И система может определить, является ли дом № 16 ребенком/внуком и т. Д. Объекта Город № 10.)
, Я знаю, что это можно сделать, используя несколько соединений и т. Д. В базе данных, но это похоже на подход «грубой силы» и не будет очень сухим или многоразовым. То, что я надеюсь найти, является более эффективным/менее наивным способом достижения этого, если это возможно. Благодаря!