[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Информацию из базы в массив, или с предобработкой
Zzepish
Вообщем - есть у нас связь одно ко многим.
Категории-подкатегории.
Это простой пример.
Категории-подкатегории-товары.
Это пример пообъемней.
Так вот:
Обычно все делаеться в цикле перебора массива из базы. Но не проще ли сделать id категории- ключ массива, и в него уже пихать подкатегории, в подкатегории (по такому-же принципу) пихать массив товаров? В итоге же будет удобнее.
Или где-то сильно просядет оптимизация?
Ron
Zzepish, а зачем тебе всё это в одном массиве понадобилось? А если товаров будет 10к?

Но лучше отображать категории отдельными страницами, а где-нибудь наверху, через breadcrumbs, указывать ветку откуда всё это дело прилитело. Для этого нужно хранить каталог в виде дерева, одним из удобных способов. Их несколько.

Вообще если сильно хочется многомерник, делается так:
[0]=>
['catalog_id']=>
['catalog_name']=>
['image_url']=>
['items']=>
[0]=>
['catalog_id']=>
['catalog_name']=>
............
['products']=>
[0]=>
['product_id']=>
['product_name']=>
.....
[1]=>['']


Ну и так далее. То есть у нас вложенный идет либо items либо products. Или даже и то и другое.
Zzepish
Ron
я про такой многомерник и говорил!
А там лимит будет стоять, так-что много не выведется) пагинация, и все такое)
Valick
Zzepish, для хранения деревьев в реляционной бд удобно использовать nested sets


_____________
Стимулятор ~yoomoney - 41001303250491
Zzepish
Valick
поверхностно погуглил. Вроде интересная тема. Благодарю
Ron
Цитата (Valick @ 24.12.2015 - 07:55)
для хранения деревьев в реляционной бд удобно использовать nested sets

Nested sets очень трудоемкий механизм при манипуляциях с деревом. Чтение там действительно реализовано, пожалуй, наиболее изящно. А вот запись или, не дай бог, перемещение узла/поддерева делается весьма болезненно. Приходится апдейтиить просто дохренища всего.

Zzepish, посмотри типы хранения деревьев. Там их как минимум 4 варианта. Может быть подберешь что-нибудь попроще. click


Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.