Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос к таблице с разрешениями  [new]
design21
Member

Откуда: Minsk
Сообщений: 59
Добрый день, помогите пожалуйста написать запрос.
OrganizationUnit могут быть вложены друг в друга например вот так

OU1 (CanRead,CanWrite)
-OU1
--OU11
---OU111
----OU1111
-OU2 (CanRead)
--OU21

Логика разрешений:
OU наследует разрешения вышележащего OU, если не имеет никаких своих разрешений, если есть свои, то они и применяются.
Таким образом все OU вложенные в OU1 имеют разрешение CanRead,CanWrite.
OU2 и вложенный в него OU21 имеют только разрешение CanRead.

для хранения применяются 2 таблицы:
dbo.OrganizationUnit (OrganizationunitId, ParentId, Name) - справочник OU
dbo.SupervisorOrganizationUnit(OrganizationunitId, CanRead, CanWrite) - разрешения установленные на OU: (OU1, CanRead, CanWrite), (OU2,CanRead)

Нужно написать запрос который выводит список всех OU для который установлено разрешение (например CanRead)
31 окт 13, 12:24    [15057735]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к таблице с разрешениями  [new]
qwerty112
Guest
design21,

рекурсивный CTE, начиная с ParentId is null и вниз по иерархии, подставляя, если не заданны свои, разрешения род.уровня

вдруг не понятно, - Рекомендации по оформлении сообщений тут - 1006908,
твои пп.4 и 6
31 окт 13, 12:33    [15057779]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить