Иерархические данные в БД

craz

Нестандартное звание
Напомните пожалуйста как мы храним такую структуру в БД

array.png
 

craz

Нестандартное звание
блин не ужели только так?

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

По сути это многомерный массив.
 

craz

Нестандартное звание
2 таблицы? чето типа
описание структуры
id | parent_id | name
значения
id | key_id | value

так?

PHP:
return array(
	'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
	'name'=>'My Web Application',

	// preloading 'log' component
	'preload'=>array('log'),

	// autoloading model and component classes
	'import'=>array(
		'application.models.*',
		'application.components.*',
	),
);
превратиться в:
описание структуры
PHP:
1 0 basePath
2 0 name
3 0 preload
4 3 0
5 0 import
6 5 0
7 5 1
значения

PHP:
1 1 dirname(__FILE__).DIRECTORY_SEPARATOR.'..'
2 2 My Web Application
3 4 log
4 6 application.models.*
5 7 application.components.*
ммм?
 

Gremboloid

инженера Гр...
превратиться в: описание структуры
все ребра по любому качаются значением
при такой постановке любой элемент дерева не имеющих детей становится значением, достаточно будет
описание структуры
id | parent_id | name
 

Redjik

Джедай-мастер
зачем ты хочешь вынести весь конфиг в бд?
для опций приложения хватит и своего компонента...
 

craz

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

Хочется просто.

Кроме меня никому не хочется зайти в админку кликнуть на файл(ы) конфигов открыть формочку и отредактировать там все. А не лезть в конфиг по ssh/ftp/etc. + Эта штука очень полезна для разворачивания новой версий всяких фреймворков будет.
 

fixxxer

К.О.
Партнер клуба
Ну так и храни в виде varchar key - varchar value

'section.group.key' = 'value'

выбрать часть - обычным like 'prefix%'

зачем тебе дерево?
 
  • Like
Реакции: craz

craz

Нестандартное звание
тоже баловался) мне пока fw не нужен никакой) задач нету...
 

craz

Нестандартное звание
ты про тчо такие данные лучше в док.ориентированной бд хранить?
 

craz

Нестандартное звание
craz если нет повторений nameX - то имхо да.
подскажи как такую же структуру покласть в mysql сериализация же только? EAV(так чтоль он пишеться)))) не предлагать

[монолог с самим собой]
А че я боюсь сеарилизации то? сериализовал сложил, деасериализовал изменил сериализовал сложил...
[\монолог с самим собой]

Блин опять этот долбанный перфекционизм...


А вобще есть ли какая то разница как хранить вообще?...

Ведь в базе не имеет значение отдельный элемент настройки... - отдельный элемент изменять это типа задела на будущее... А чтобы двинуться дальше достачно просто хранить чуть ли не весь файл в TEXT поле...
 

Absinthe

жожо
подскажи как такую же структуру покласть в mysql сериализация же только? EAV(так чтоль он пишеться)))) не предлагать
Зависит от повторений. Если структура пересекается - то без EAV не обойтись.
 

craz

Нестандартное звание
Каких повторений? одинаковых названий ключей? в разных уровнях? такое возможно...
 
Сверху