|
|
|
Структура сайта
|
|||
|---|---|---|---|
|
#18+
Доброе время суток. У меня следующая проблема. Есть сайт, структура разделов и подразделов реализована через folderID + parentFolderID, что позволяет делать структуру любой вложенности. Есть отлаженный механизм создания, изменения и удаления разделов. К каждому разделу могут быть прикреплены фотографии, товары, документы через указание folderID к которому они принадлежат. Недавно, из-за создания на базе движка более крупного сайта (более 200 разделов всего и до четвертого уровня вложенности) появилась задача реализовать хлебные крошки, которая была решена последовательным извлечением информации из записей разделов, пока parentID не равно 0. Потом список папок кэшируется и всем счастье. (т.е. на каждый уровень вложенности, количество запросов к базе данных увеличивается на один запрос, что, на сколько я понимаю, для производительности не очень критично при гипотетическом максимальном уровне вложенности в 7-8 уровней с учетом кэширования данных ). И у меня появился вопрос, на который я не могу найти ответ. Как с помощью системы folderID + parentFolderID вывести все подразделы, если мне, к примеру, нужно вывести (условно) список всех телевизоров, если они, в свою очередь, находятся в разделах "Sony" и "Samsung" и т.п. Или же, вывести последние 10 (по дате добавления) фотографий раздела галерея, если в этом разделе фотографии достаточно сильно разбросаны по большому количеству подразделов. Я уже начинаю смотреть в сторону Nested Sets, но очень мне не нравится количество накладных расходов ДАЖЕ на изменение порядка следования подразделов одного раздела. Сейчас подразделы одного раздела упорядочиваются через цифровое поле Iportance, чем выше значение - тем выше в выдаче. Стоит ли мне смотреть в сторону Nested Sets? Я изучил раздел FAQ и попробовал сделать тестовый рабочий вариант. Субъективно, мне очень он понравился, хотя сложностей много и процесс изменения структуры сайта стал более "тяжелым". Так же, появилась необходимость делать дополнительные запросы к БД, для того, что бы по айдишнику узнавать левый и правый ключ, т.к. извлечение информации о конкретном разделе идет по ID, а любые другие выводы списка папок идут по левому и правому ключам, может быть я чего-то не учитываю, т.к. знания мои в языке запросов не идеальны. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 02:04 |
|
||
|
Структура сайта
|
|||
|---|---|---|---|
|
#18+
То есть http://www.osp.ru/pcworld/2007/03/4199032/ http://www.sql.ru/articles/mssql/2005/061904TreesInSQLdatabases.shtml уже изучено, и метод Nested Sets выбран. Любой метод имеет свои достоинства и недостатки (то что хорошо читает обычно плохо пишет и наоборот) в рамках любого метода ДОЛЖНЫ быть ответы на ваши вопросы или вы плохо читали. Какой метод лучше вам никто не скажет это определяется нагрузкой на вашу базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 04:42 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=67&tid=1542422]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
20ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 336ms |

| 0 / 0 |
