169 похожих чатов

Парни, вопрос на засыпку Представим есть нетривиальная схема расчета видимости объектов

в бд в зависимости от уровня прав к корневому объектк

Сейчас она реализована в виде скоупов к запросам к бд весьма большой вложенности (юзер в тиме, тима видит корневой объект, в корневом есть объект1, в нем объект2, в нем объект3, в нем объект 4…)

С ростом количества данных цена таких запросов растет в прогрессии настолько, что уже становится грустно

Зато есть плюс - юзер всегда видит только то, что ему положено без доп операций

На ум приходит альтернативный подход в виде таблицы, содержащей отсылку к объектк и предрасчитанного параметра для фильтрации (=отсылка на корневой объект)

Тут же получаем большой буст скорости, но ценой комплексной логики перерасчета прав при апдейтах на вложенные объекты (вложенность не ограничена)

Может есть какие-то подходы из индустрии на почитать?

3 ответов

4 просмотра

ReBAC. Relationship Based Access Control. последние пару лет популярность на хайпе google zanzibar. есть имплементации готовые типа там spicedb, openfga и прочее и т.д. которые проблему которую ты описываешь формулируют как permission based filtering/search или чет такое

Daniil-Zobov Автор вопроса
Sergey P
ReBAC. Relationship Based Access Control. последни...

Кажется, что прям в точку. Спасибо, пошел читать

Поздравляю вы изобрели деревья и индексы к ним. Осталось немного до своей мини бд внутри бд 😀

Похожие вопросы

Обсуждают сегодня

кому не сложно распишите пожалуйста для какой цели тут вот эти скобки и в них пихается указатель?
Михаил Helper
15
Обновленный chat тестили уже господа? Готовимся на заводы ? Простой проект на ларавель собирает за 1 ответ..
Jacov Borisov
9
Или мне дублировать структуру с информацией о следующем потоке в адресное пространство текущего потока?
One
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в "главной форме" создаются "дочерние формы / копии главной" new_form := TForm1.Create(Application); new_form.blah_blah_blah обработчик, срабатывающий при изменении положени...
livontiy
6
Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
Комрады, посоветуйте, куда копать? Стал прикручивать кастомизацию тем. В OnShow главной главной формы пытаюсь загрузить из файла настроек и применить тему (на скрине, как долж...
Ed Doc
13
OnShow один раз вызывается? или возможен Hide?
Iluha Companets
14
Can anyone help me out here?
Ryzen
7
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Карта сайта