Как вариант можно в таблице сделать поле category и в ней перечислять категории через ; а потом их разбивать explode'ом, но это велосипед, вариант с доп. таблицей лучше...
- 09.01.2013 16:17
- 09.01.2013 16:28
да, в цикле - это как бы "фоном" делает функция. так что сильно не нагрузит.
зато отдельная таблица не нужна. категорий хоть 20, это не важно.
ну у меня же не нагружает) это кстати не я сказал, это форумчане отметили быструю работу моего сайта... а у меня не 1 такая функция, и не в одном месте используется..
кстати, чтобы не ограничивать себя циклом for, в котором стоит ограничение 7, можно использовать например while,
и в условие ставить " пока есть категории"
---------- Сообщение добавлено 17:28 ---------- Предыдущее 17:19 ----------
AntoXa, и сколько запросов будет? в моем варианте будет столько, сколько стоит в поле category, а в случае отдельной таблицы, тебе всю таблицу каждый раз пробегать придется, пока соответствие найдешь, а если у тебя 1000 статей или больше? сколько времени будет уходить на чтение таблицы соответствий? и большей частью впустую, так как в результате будет находиться только 1 соответствие.Последний раз редактировалось cOAPerator; 09.01.2013 в 16:31.
- 09.01.2013 16:33
Эм, как бы... вместо одного дополнительного запроса к бд лучше делать их столько, во сколько категорий входит статья? Чего-то я не понимаю значит...
Напоминаю всем. Для ускорения работы с бд нужно использовать mysqli , который в новых версиях рнр будет стандартом при работе с mysql базами, а старый mysql_query будет запрещен. - 09.01.2013 16:36
- 09.01.2013 16:43
Не пойму, почему доп таблица хуже при 1000 статей? Ведь когда мы смотрим категорию 1 мы один запрос делаем с айди этой категории и у нас есть результат.
Когда мы смотрим статью то тоже делаем один запрос с айди статьи и результат. При каком варианте то их много нужно делать, запросов к доп таблице? - 09.01.2013 16:47
- 09.01.2013 16:51
Приехали... ТС как раз и просил альтернативу. При альтернативе делается один запрос с айди статьи, поле category уже нет, когда есть доп таблица.
Посмотри второе сообщение в этой теме и что я написал выше пост.
Запрос с айди статьи выдаст все айдишники категорий сразу. А например если это для ЧПУ то можно сразу и путь категории писать в таблице связке, чтобы не делать доп запросы в таблицу с категориями. - 09.01.2013 17:01
пардон, чето пропустил) сори. но в таком случае вообще получается эта таблица ссответствий, будет как на дрожжах расти.
1000 статей * 3 категории к каждой статье = 3000 записей
в итоге: при выводе на странице категорий которые присвоены статье, каждый раз пробежка по твоей огромной таблице соответствий, которая в 3 раза превышет кольчество самих статей.
и так для каждой статьи.
+писать скрипт который будет менять категории и их количество, если например для статьи какой то надо поменять.
а у меня смена категорий 1 запросом.
в моем варианте количество целевых запросов к бд и время генерации в итоге меньше.Последний раз редактировалось cOAPerator; 09.01.2013 в 17:03.
- 09.01.2013 17:17
а если использовать LIMIT и пагинацию. Допустим на странице 15 статей, то и нагрузка станет меньше.
хотя по таблице соответствий пробежаться придется все равно.
блин, сделал с таблицей соответствий, теперь не знаю, что делать, переписывать или так оставить...
да, запарка со скриптом меняющим категории тоже была, просто удаляю все записи с этой статьей и создаю заново, только уже для вновь выбранных категорий (или уже существующих). - 09.01.2013 17:23
это наверное дело вкуса уже) я когда изучал вопрос построения категорий, сразу отказался от варианта с доп. таблицей, т.к. он мне кажется слишком избыточным..
в итоге мой вариант вышел более простым, менее затратным в плане ресурсов, и более легким в плане обслуживания(в данном случае - изменение категорий) - я сторонник минимализма)
но повторюсь, имхо, это дело вкуса..
ну это само собой, но все равно, избыточность будет в пробежке по этой отдельной таблице..
сами посчитайте, что быстрее: пройтись по таблице с 3 десятками категорий 45 раз (15 постов с 3 категориями на каждую)
или 15 раз (15 постов на странице) по 3 тысячам записей?
Ну решать Вам)Последний раз редактировалось cOAPerator; 09.01.2013 в 17:33.
Тэги топика:
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Алгоритм грабера | Web программирование | 12 | 08.05.2012 17:22 |
Дубли разделов, удаление из индекса | Вопросы от новичков | 2 | 21.01.2012 17:23 |
Рекомендации по оптимизации разделов сайта | Дайджест блогосферы | 0 | 10.04.2011 19:27 |
Как работает алгоритм АГС | Дайджест блогосферы | 0 | 24.04.2010 14:08 |