Tаrantino
Дата: 14.10.2003 09:56:56
такая ситуация, есть таблица в которой иерархически организован справочник подразделений, есть таблица пользователей этих подразделений.
И есть некая табличка с документами, каждый документ закреплен за отдельным пользователем.
Пользователи могут быть как простыми так и руководителями, причем простой пользователь должен видеть только свои документы (легко организовывается), руководитель видит свои документы и пользователей своего подразделения (тоже легко организовывается), но есть и такое понятие как "супер руководитель" он соотвественно видит свои документы и пользователей своего подразделения но в добавок к этому он должен видит документы подчиненных подрезделений и их пользователей. Как это лучше всего организовать?
Tаrantino
Дата: 14.10.2003 10:20:45
с функцией разберусь, хотя раньше их не писал и никогда не использовал. прошелся поиском и нашел примеры фукнцию которые могут вернуть мне необходимый список подразделений, будем считать что она уже есть. Тогда запрос который должен вернуть список документов, будет выглядить примерно так:
SELECT
t1.*
FROM
tUserDocuments t1
WHERE
(t1.UserName = SYSTEM_USER OR
t1.UserName EXISTS (SELECT * FROM tUsers t2
WHERE
DepartID IN GETCHILDDEPART(SYSTEM_USER)
))
где GETCHILDDEPART соотвественно возвращает список подразделений, если он простой пользователь то список пустой, если руководитель то там только его подразделение, если супер руководитель то его и подчиненные подразделения