Универсальные параметры на все случаи жизни

vg2k

Новичок
Универсальные параметры на все случаи жизни

Хочу организовать удобную работу с параметрами, встроить ее во фреймворк, ибо надоело каждый раз параметры описывать под случай.

Полазил по форуму, упоминаний про структуру БД параметров маловато, и даже те, что есть кустомизированы под текущие проекты ТС.

Сделал свои наброски, прошу вас глянуть... поправить что нет так.
Может в каких CMS/Framework есть красивые реализации параметров ? Какие будет полезно глянуть?

Это не рабочая версия, а просто набросок "на листочке", id-шники я везде писал уникальные (в области всех таблиц), дабы не запутаться.

Код:
# params ----------
# Описание самих параметров

id | scheme_id | group |   code   |    name    |   type   | type_definition | order
 1       2        14        fax        Факс      checkbox        0             0
 3       2        13        city       Город       text          0             0
 4       2        14      security     Охрана     select         7             0
 
 

# params_schemes ----------
# Схемы... для раздленеия параметров, набор парметров. Например для каталога пылесосов будет схема "Пылесос", а для каталога мониторов "Монитор"

id | name 
 2   Офис
 
 
# params_groups ----------
# Для возможности группировки параметров внутри "схемы".

id |     name      | order
13     География       0
14      Разное         0

# params_values ----------
# Это значения параметров.
# Поле "gr" не приудмал как назвать пока :)

param_id | "gr" | value
    1       55     1
    3       55    Москва
    4       55     5
    

# params_type_definitions ----------
# Описания типов... в случае, если тип параметра select, то тут содержиться список возможных options-s.

id | definition_group |  value
 5          7           домофон
 6          7           Охранник
 8          7             Нет

# params_class_2_scheme ----------;
# scheme_alias - это имя модели обычно, но может быть что угодно.

id | scheme_alias  | scheme_id
78     houses           2
Например есть таблица недвижимости "houses":
Код:
 id  | title | created | manager | params
 123    заг    1234567    Вася       55

В коде использование будет примерно таким:
PHP:
$param_manager = new Param_manager();
$param_manager->load(55, "houses");  // Загрзука по ("gr", scheme_alias)

print_r($param_manager->data); // Вывод масисва параметров 

echo $param_manager->get('city');

$param_manager->set('city', 'Питер');

$param_manager->save();
 

fixxxer

К.О.
Партнер клуба
pear quickform посмотри

-~{}~ 08.10.07 04:36:

вот только еще не совсем понятно что ты имеешь в виду под "параметрами".
сразу подумай как ты будешь делать поиск, например, если это понадобится
 

vg2k

Новичок
По quickform не пойму, что там можно найти:
http://pear.php.net/package/HTML_QuickForm2/docs/latest/
чисто строитель форм
может вы неверно поняли мою затею, наличие типов : select, text, checkbox - это не чисто для форм... а дабы определять тип параметра т.е. возможные его состояния: галочка, текстововая строка (varchar), выпадающий список.

вот только еще не совсем понятно что ты имеешь в виду под "параметрами"
Различные доп данные объекта, которые в процессе существования сайта могу меняться достаточно часто. Дабы "блондинки" из админки могли легко ими управлять.


сразу подумай как ты будешь делать поиск, например, если это понадобится
да, это естественно понадобиться. Сейчас достаточно похожая схема параметров используется у меня на одном из сайтов... там как поиск по различным критериям есть. На том движке хоть и неудобно, но без собоых заморочек реализован поиск... по запросу (массиву параметр=> значение) строиться дополнительные SQL условия (FROM, WHERE). Для построения этого запроса предварительно понадобиться естественно подгрузить структуру параметров со связками (что потребует несколько небольших запросов) - это не летально для поиска.
 

HraKK

Мудак
Команда форума
Не надо переоценивать ум блондинок. Они в этом не разберутся.

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

tf

крылья рулят
Полазил по форуму, упоминаний про структуру БД параметров маловато, и даже те, что есть кустомизированы под текущие проекты ТС.
что-то вы плохо лазили, на первой странице в теории http://phpclub.ru/talk/showthread.php?s=&threadid=82801&rand=103
 
Сверху