18:47

alhames.ru
Ребят, я иссяк. Может у вас будут идеи:
как хранить многомерный массив в плоской базе данных (MySQL), так чтобы удобно можно было организовывать поиск по всем элементам?
К примеру:
{
id: 1,
name: 'Иванов Иван Иваныч',
mother: {
id: 2,
name: 'Иванова Ивания Ивановна'
},
father: {
id: 7,
name: 'Иванов Абдула Иванович'
},
hobby: [
[{name: 'Спорт',id: 334},{name: 'Велосипед',id: 745}],
[{name: 'Телевизор',id: 644},{name: 'Дом 3',id: 838}]
]
}

И после к примеру мне нужно будет сделать выборку всех людей, кто увлекается спортом, всех людей кто увлекается ездой на велосипедах, или кто не смотрит дом 3. Как?

@темы: MySQL, SQL

Комментарии
09.05.2012 в 18:52

тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
OLAP-куб ?
09.05.2012 в 20:46

alhames.ru
CD_Eater, спс, сейчас погуглю )
09.05.2012 в 21:32

alhames.ru
Получилась такая штука..
Максимальная размерность массива - 4. Причем в данном случае в качестве ключа последнего уровня должен быть объект.

старый вариант

values
idparenttypeobject_keyobject_valuestring_valueint_value
1 1 1 Ваня
2 1 2 2
3 1 3 3
4 1 4 4 5
5 1 4 6 Дом 3
6 1 5 90
7 1 6 200

objects
id title
1 Иванов Иван Иваныч
2 Иванова Ивания Ивановна
3 Иванов Абдула Иванович
4 Спорт
5 Велосипед
6 Телевизор

type_groups
id title
1 Человек
2 Хобби
3 Спорт

types
id group title
1 1 name
2 1 mother
3 1 father
4 1 hobby
5 1 weight
6 1 height