Настраиваемая выборка для разных пользователей

Модераторы: kdv, CyberMax

Ответить
Guardian777
Сообщения: 33
Зарегистрирован: 09 июл 2009, 14:57

Настраиваемая выборка для разных пользователей

Сообщение Guardian777 » 02 сен 2009, 10:27

Добрый день.
Работаю с СУБД Firebird 2.0
Пишу программу для продаже товаров в магазине.
Заказчик требует что бы была реализована следующая концепция.
Есть обслужиающий персонал, который делится в свою очередь на продавцов, менеджеров, старших менеджеров.
Соответственно у каждой группы пользователей разные права на просмотр информации о заказах и товаре.
Соответственно и разным группам пользователей требуется выдавать только те поля которые им настроил администратор.
Каким образом лучше хранить данные, о том какие поля показывать данной группе пользователей и как в последствии с ними работать ?
Склоняюсь к тому что бы хранить список полей для каждой роли, и затем сначала запрашивать из БД те поля которые доступны данному пользователю, а после уже выдавать ему необходимые данные.
Есть ли у вас мысли по поводу того как это можно сделать изящно и красиво ? (А главное работоспособно )
Заранее благодарен за помощь.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Настраиваемая выборка для разных пользователей

Сообщение Dimitry Sibiryakov » 02 сен 2009, 14:30

Можно хранить в таблице, а "ненужные" поля обNULLять при доступе через view или Stored Procedure.
А можно для каждой группы пользователей создать по роли, и по вьюхе. Выделить права на соответствующие вьюхи только соответствующим ролям. В этом случае можно отсечь не только содержимое полей, но и сами поля. Правда, при программировании приложения будет тот ещё геморрой.

Ответить