Forums / National / Russian / Тех. поддержка / cot_auth

Wadik
#1 2012-02-27 17:55

Хотел бы поднять такую проблему:

У нас есть таблица cot_auth в базе. 

Какой смысл при создании каждой категории страниц на сайте вставлять в эту таблицу по несколько записей со стандартными правами?! Получается, что при 500 категориях на сайте эта таблица разрастается чуть ли не в 3-4 раза. Может имеет смысл вставлять только параметры прав тех категорий, которые отличаются от стандартных? Тем самым и кеш бы не забивался, и база бы в разы уменшилась.

 

 

Добавлено 12 минут спустя:

Еще раз детально посмотрел. Получается, что на 1 категорию добавляются 6 записей. И все однотипные, которые указывают на стандартные права к этой категории. Таким образом база с увеличением числа категорий разрастается в 6 раз!

This post was edited by Wadik (2012-02-27 18:08, 12 years ago)
Dayver
#2 2012-02-27 18:13

6 это если вы не добавили новых групп пользователей ... а если у вас 500 категорий и 100 групп пользователей то в этой таблице уже будет 500*100 записей +кол-во плагинов\модулей*100 .... вот

А по сути вопроса - а что считать стадарными? ведь 6 записей на категорию это в случае стандартного набора групп пользователей, а как тогда считать стандартные если добавятся новые группы?

Добавлено 2 минуты спустя:

Но даже при таких обьемах размер таблицы уж не слишком большой потому лично я не вижу смысла что то урезать ибо явно пострадает гибкость системы прав. Если все же есть конкретные предложения не во вред гибкости тогда с радостью выслушаем

Pavlo Tkachenko aka Dayver
Wadik
#3 2012-02-27 19:03

По поводу нестандартных групп я конечно не додумал... Верно Вы подметили, Dayver.

Группы создаются на основе имеющихся 6 предустановленных. Поэтому составить матрицу с дефолтными правами думаю не составит труда. 

А гибкость и не пропадет. Оставить возможность устанавливать отдельные права для каждой категории думаю разумно.

Мое предложение не добавлять каждый раз при создании категории в базу cot_auth стандартную матрицу прав доступа, а лишь предусмотреть ее 1 раз в программной части.

esclkm
#4 2012-02-27 19:03

да и в 09 уже есть бесправные группы пользователей

Добавлено 57 секунд спустя:

а оптимизованный код под то все????

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Trustmaster
#5 2012-02-28 08:00

Проблема лишних групп решается бесправными группами, как esclkm заметил. Что касается элементов, то там сложнее. Если коротко: сейчас для авторизации используется матрица доступа (МД). Она большая и прямоугольная, но в ней можно очень быстро найти нужную ячейку, сложность поиска O(1). Если экономить место, то от матрицы надо переходить к дереву. Даже если не обращать внимание на усложнение алгоритмов хранения прав, то сложность поиска увеличивается до O(N), где N - глубина элемента от корня сайта. На практике это означает, что такие права будут работать значительно медленнее и сложнее. Поэтому мы пока от этого отказались, тем более даже на огромных сайтах пока cot_auth справляется со своей задачей.

May the Source be with you!
Wadik
#6 2012-03-01 12:25

Теперь понятно. Значит я ошибался. Спасибо за информацию!