powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите с правами доступа
8 сообщений из 8, страница 1 из 1
Помогите с правами доступа
    #32815127
Slavich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникла такая вот проблема:

У фирмы есть N-е количество филиалов, разделенных территориально.
У каждого филиала есть свой склад и некоторое количество магазинов
(у главного офиса также есть свой склад и магазины).
Значит, для того, чтобы в главном офисе знать какие остатки товара на складе
у филиалов и магазинов, на Web-сервере организована (PHP+MySQL) система
внесения филиалами и магазинами своих остатков. Но есть одна проблема,
при внесении остатков, любой филиал или магазин может просмотреть остатки
на других филиалах и магазинах. Соответственно передо мной поставили задачу
ограничить доступ ко внесенным данным, таким образом, чтобы каждый филиал видел только свои остатки, своих магазинов, и главного офиса. Магазины не должны ничего видеть, только вносить данные. Главный офис должен иметь доступ ко всем данным. И всего лишь несколько (не все) магазинов (принадлежащих главному офису) должны видеть остатки главного офиса.

У меня сейчас в БД хранится таблица пользователей, справочник товара и таблица с остатками товара. К каждой единице товара (в таблице остатков) цепляется ID пользователя для определения кому принадлежит остаток данного товара.

Для меня составляет трудность составить каким образом инициировать права доступа (как их описать и хранить в базе). Использование пользователей MySQL не подходит, т.к. вся эта беда находится на хостинге и полных прав на MySQL нет.
Может хоть кто-то подскажет каким образом организовать работу.
Буду благодарен любым подсказкам.
...
Рейтинг: 0 / 0
Помогите с правами доступа
    #32815210
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, а чем не подходит вариант завести таблицу ролей (групп) пользователь входит в определенную группу (по филиалам). Соответственно смотрим, в какую группу(ы) входит пользователь, и выводим ему склады (остатки) только по этой группе(ам). Возможны трудности с главным офисом, но преодолевается внесением их во все группы (все филиалы). Операторы из магазинов никуда не вносятся и ничего видеть не могут.

Получается связка: оператор - группа - склад - остатки
Заводятся соответствующие таблицы и вперед...
Обработать напильником до полной готовности!!!

ЗЫ MySQL не знаю, поэтому не понимаю, в ЧЕМ ИМЕННО заключается проблема
ЗЗЫ Написал первое, что пришло в голову. Просьба помидорами не закидывать
ЗЗЗЫ
SlavichИспользование пользователей MySQL не подходит, т.к. вся эта беда находится на хостинге и полных прав на MySQL нет.
ИМХО по любому плохо!!!
...
Рейтинг: 0 / 0
Помогите с правами доступа
    #32815886
Slavich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за подсказку, ща буду пробовать.....

P.S. Получается, что для каждой группы нужно свою таблицу создавать? Или постараться организовать все в одной?
...
Рейтинг: 0 / 0
Помогите с правами доступа
    #32816305
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlavichСпасибо за подсказку, ща буду пробовать.....

P.S. Получается, что для каждой группы нужно свою таблицу создавать? Или постараться организовать все в одной?Имелось в виду это:
1. Уже есть таблица пользователей
2. Создать таблицу группа. Связь с пользователями. (группа -> пользователь 1:N)
Таким образом каждый пользователь может входить только в одну группу.
По постановке похоже нужно чуть сложнее
Добавляем Таблицу вхождения Связи тогда 1:N от пользователей к вхождениям и от группы к вхождениям. Уже получается что пользователь может входить в множество групп и группа может содержать много пользователей (N:M)
Так ОДНИМ запросом можно однозначно идентифицировать в какие группы входит пользователь.
3. Склады или остатки цепляются к ID группы (вместо вделанного у тебя ID пользователя).
4. Дальше остается просто напихать в таблици нужные связи.

ЗЫ возможно все МОЖНО РЕШИТЬ ПРОЩЕ, но не зная ВСЕЙ постановки задачи трудно точно отвечать.

Удачи!!!
...
Рейтинг: 0 / 0
Помогите с правами доступа
    #32816652
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторК каждой единице товара (в таблице остатков) цепляется ID пользователя для
Если нужно по проще и побыстрее - то можно просто перечислить для ID пользователя - ID других пользователей доступ к остаткам которых необходимо обеспечить...

Вот только выборку данных в грид необходимо формировать вьюхой или процедурой.
...
Рейтинг: 0 / 0
Помогите с правами доступа
    #32816738
Slavich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
olol авторК каждой единице товара (в таблице остатков) цепляется ID пользователя для
Если нужно по проще и побыстрее - то можно просто перечислить для ID пользователя - ID других пользователей доступ к остаткам которых необходимо обеспечить...

Да, я в принципе так и начал строить схему БД, только плохо, что MySQL не работает еще с вьюхами и не поддерживает процедур. Все придется делать на PHP на клиенте.
...
Рейтинг: 0 / 0
Помогите с правами доступа
    #32831128
Slavich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VoDA SlavichСпасибо за подсказку, ща буду пробовать.....

P.S. Получается, что для каждой группы нужно свою таблицу создавать? Или постараться организовать все в одной?Имелось в виду это:
1. Уже есть таблица пользователей
2. Создать таблицу группа. Связь с пользователями. (группа -> пользователь 1:N)
Таким образом каждый пользователь может входить только в одну группу.
По постановке похоже нужно чуть сложнее
Добавляем Таблицу вхождения Связи тогда 1:N от пользователей к вхождениям и от группы к вхождениям. Уже получается что пользователь может входить в множество групп и группа может содержать много пользователей (N:M)
Так ОДНИМ запросом можно однозначно идентифицировать в какие группы входит пользователь.
3. Склады или остатки цепляются к ID группы (вместо вделанного у тебя ID пользователя).
4. Дальше остается просто напихать в таблици нужные связи.

Удачи!!!


Все просто супер.. работает отлично... Очень Вам благодарен
...
Рейтинг: 0 / 0
Помогите с правами доступа
    #32835028
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlavichВсе просто супер.. работает отлично... Очень Вам благодарен
Рад, что смог помочь!
ЗЫ С намеком на пиво
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите с правами доступа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]