|
Несколько извращенный RLS | ☑ | ||
---|---|---|---|---|
0
Лодырь
31.08.12
✎
07:58
|
Задача:
Есть документ, назовем его "Документ". У него есть две табличные части "ТЧасть1" и "ТЧасть2". Пользователь должен видеть Документ в том случае если: а. "ТЧасть1" содержит элемент удолетворяющий некому критерию б. "ТЧасть1" пустая и "ТЧасть2" содержит элементы удолетворяющие некому критерию. Сложность вычисления критериев - равная. Методы решения: 1. Сотворить 1 сложный RLS запрос с объединением, в одной части которого проверяется а, во втором б. 2. Сделать две роли с мелкими запросами без объединения и дать пользователю обе. Как думаете что будет работать быстрее ) P.S. ничего не курил, а вот похмелье да.. присутствует. |
|||
1
ILM
гуру
31.08.12
✎
08:02
|
(0) RLS будет работать всегда медленно.
|
|||
2
Ursus maritimus
31.08.12
✎
08:02
|
3. Сделать в документа реквизит "ПоказыватьПользователю", заполнять его в ПередЗаписью и ниипать мозк
|
|||
3
Лодырь
31.08.12
✎
08:09
|
(2) Нееее... зае..сь создавать реквизиты под каждого юзера.
|
|||
4
Ursus maritimus
31.08.12
✎
08:10
|
(3) Как бэ в реквизит не обязательно булево.
|
|||
5
Лодырь
31.08.12
✎
08:10
|
(1) да вы батенька пессимист
|
|||
6
Лодырь
31.08.12
✎
08:11
|
(4) Не решает той проблемы, если область видимости пользователя поменялась после записи объектов.
|
|||
7
vde69
31.08.12
✎
08:20
|
у меня есть такое решение RLS (для сложных условий), реально работает вполне быстро
1. в документе делается реквизит ХЕШ (справочник) 2. делается РС с измерениями Пользватель, Хеш 3. в справочнике хеш есть ТЧ в которой лежать все критические поля которые дают искомую комбинацию открывающий доступ 4. при записи документа из самого документа ищем все критические поля и по ним ищем элемент справочника хеш (или создаем) и записываем в реквизит документа. в моем случае критерием доступа было 4 элемента разных справочников, но когда разрабатывал считал комбинаторику при 1000 пользователей можно использовать хешь до 10 разных полей |
|||
8
ILM
гуру
31.08.12
✎
08:39
|
(5) Нет, я увы реалист. Пока база маленькая все просто летает, но когда вырастает размер в разы, начинаются отчеты, отборы и т.д.
"-А что тогда происходит? А наступает счастье!" ((с) Е.Гришковец) |
|||
9
vde69
31.08.12
✎
08:44
|
(8) ты самого главного не понял, автор выбирает между одним большим RLS и двумя более простыми.
в обоих случаях RLS будет :) |
|||
10
Лодырь
31.08.12
✎
09:56
|
(7) Тоже обдумывал нечто подобное. Надо будет проработать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |