![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Работаю с PHP & MySQL.
Задача. Надо организовать хранение прав доступа пользователей. Причем. 1. Надо делать разделение на сабдомены (т.е. связываем с ID сабдоменов в дочерней таблице) 2. Надо сделать разделение на модули (аналогично). 3. Сами права для каждого модуля могут быть разными. 4. Кол-во данных (всех) не имеет ограничений. пока я себе представляю это так: ID_Subdomain | ID_Modul | Group | CONF_Param | CONF_Value Есть ли какие-ть предложения. В принципе и такой вариант работоспособный, но вдруг есть более рациональное решение. Да, еще хочу отметить. Уже в самой программе будет сформирован массив с ключами из CONF_Param и соответствующих им значений из CONF_Value. |
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 2 Всего: 54 |
A если взять отсюда
-------------------- ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Kesh не понял что ты имеешь ввиду
![]() |
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 2 Всего: 54 |
Почему бы не взять модель хранения прав доступа из самого mySQL и модифицировать ее под свои нужды...
-------------------- ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
А можно об этом чуть подробнее
![]() |
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 2 Всего: 54 |
Ну смотри... Твоя задача - организовать хранение прав досупа пользователей... Если задаться вопросом, где можно взять схожую модель, удовлетворяющую твоим запросам, то первым делом взгляд должен упасть на модель хранения прав доступа в самой базе с которой ты работаешь... Ведь mysql где-то и как-то хранит информацию по правам доступа пользователей... А это и есть таблицы users, tables_priv и columns_priv... Вот оттуда я бы и начал копать...
![]() -------------------- ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Фишка в том, что в 4:
Привилегии статичны и уже занесены в БД, а у меня нет такого ограничения. |
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 2 Всего: 54 |
Так кто мешает изменить set на то, что тебе удобно по принципу CHMOD...
![]() -------------------- ![]() |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Что есть сабдомены и модули, какую роль они выполняют, как связанны между собой? Права на что ты хочешь предоставлять, на отдельные строки и поля таблиц, или на некие твои собственные структуры данных?
О каких данных идет речь? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
Mal Hack |
|
||||||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
В процессе работы параметры могут меняться и добавляться, поэтому SET не пойдет.
Движок работает не прочто на example.com, но и на *.example.com. Т.е. в первую очередь различаются настройки для разных сабдоменов. Аналогично и по модулям, т.е. надо различать USE_DEF для модуля download и для модуля news.
Не совсем понял что ты имеешь ввиду.
О параметрах конфигурации. |
||||||||
|
|||||||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 2 Всего: 54 |
Так я и не говорю про SET... Можешь хоть varchar завести... и ранить + или - на соответствующих правам местах... Хотя красивее было бы работать с integer и его разрядами... -------------------- ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Даже если считать по битам, как CHMOD, то надо иметь статичное кол-во этох параметров. У меня же оно динамическое. |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Вопрос снимается. Я бы сделал так:
Таким макаром мы получаем разрешения на любое количество доменов, с возможностью иерархического наследования. Т.е. определили разрешения для домена верхнего уровня, а у дочерних доменов их только переопределяем, при необходимости. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
LSD
Это-то я предусмотрел ![]() Причем дочернее не дочернее тут не нужно. Меня больше интересовал вопрос, как лучше оргазизоват хранение: Group | CONF_Param | CONF_Value |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
По смыслу задачи разрешение, назначается паре: домен-модуль, так что тут все ОК. Разрешение представляет из себя пару: ключ-значение. Если разрешение на пару домен-модуль, может быть только одно то текущая структура нормально подходит, если же их может быть больше, то надо выносить Group | CONF_Param | CONF_Value, в отдельную таблицу и делать ссылку на базовую. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Kesh |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 2 Всего: 54 |
Я же сказал, что Varchar подойдет... ![]() К тому же я бы обратил внимание на
Что в твоем случае означало бы
Но это все только IMHO... -------------------- ![]() |
||||||
|
|||||||
Mal Hack |
|
||||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
домен - модуль - группа
Нет. Может быть к примеру на эту связку два параметра DIR = NO , TMP = TRUE.
Натолкгнул ты меня на мысль. А что если сделать так: Таблица один: ID | ID_Subdomain | ID_Modul | Group Таблица два: ID_1table | CONF_Param | CONF_Value Как в данном случае увеличится быстродействие и оптимальность хранения? |
||||||
|
|||||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 2 Всего: 54 |
И все же ИМХО лучше в одну таблицу, но с ключом...
-------------------- ![]() |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Окей. Спасибо.. Буду переваривать...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |