vg2k
Новичок
Универсальные параметры на все случаи жизни
Хочу организовать удобную работу с параметрами, встроить ее во фреймворк, ибо надоело каждый раз параметры описывать под случай.
Полазил по форуму, упоминаний про структуру БД параметров маловато, и даже те, что есть кустомизированы под текущие проекты ТС.
Сделал свои наброски, прошу вас глянуть... поправить что нет так.
Может в каких CMS/Framework есть красивые реализации параметров ? Какие будет полезно глянуть?
Это не рабочая версия, а просто набросок "на листочке", id-шники я везде писал уникальные (в области всех таблиц), дабы не запутаться.
Например есть таблица недвижимости "houses":
В коде использование будет примерно таким:
Хочу организовать удобную работу с параметрами, встроить ее во фреймворк, ибо надоело каждый раз параметры описывать под случай.
Полазил по форуму, упоминаний про структуру БД параметров маловато, и даже те, что есть кустомизированы под текущие проекты ТС.
Сделал свои наброски, прошу вас глянуть... поправить что нет так.
Может в каких 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
Код:
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();