|
|
|
| Здравствуйте.
Вопрос такой имеется база из 3х таблиц:
1. Теги (t_id, t_name)
2. Материалы (m_id, m_name, m_text)
3. Связующая материалов и тегов (mt_mat, mt_tag)
Задача вывести превьюшки материалов т.е. заголовки, часть текста и все теги в виде ссылок.
Можно ли это сделать одним запросом или надо делать вложенные запросы для формирования тегов? | |
|
|
|
|
|
|
|
для: durable
(30.01.2012 в 22:58)
| | вы ничего не сказали про условие выборки по рубрике, где это поле в таблице? | |
|
|
|
|
|
|
|
для: Valick
(30.01.2012 в 23:07)
| | Грубо говоря мне надо при переходе по тегу показать все материалы которые с этим тегом связаны и в каждом материале показать все его теги. Как то так. | |
|
|
|
|
|
|
|
для: durable
(31.01.2012 в 13:39)
| | переход по тегу и выборка всех материалов - это один запрос
выборка всех тегов для одного материала - это тоже один запрос
а вот сделать одновременно и то и другое одним запросом не получиться
если используется постраничная навигация (10 материалов на страницу), то это 11 запросов на страницу
для решения данной задачи
без постраничной навигации я бы не рискнул :) | |
|
|
|
|
|
|
|
для: Valick
(31.01.2012 в 14:02)
| | Именно поэтому я и спрашиваю, потому что очень смущает количество запросов на страницу | |
|
|
|
|
|
|
|
для: durable
(31.01.2012 в 14:20)
| | можно слегка денормализовать таблицу и ввести дополнительное поле и в нем продублировать теги через запятую | |
|
|
|
|
|
|
|
для: Valick
(31.01.2012 в 21:00)
| | да можно, но тогда о целостности данных можно забыть
например мне нужно будет переименовать один из тегов | |
|
|
|
|
|
|
|
для: durable
(01.02.2012 в 22:08)
| | естественно эталоном тегов для статей будет таблица связи, а поле можно обновлять каждый раз при обращении к определенной статье при выводе ее полной версии, и тем самым поддерживать актуальность тегов, я думаю некорректность будет минимальной | |
|
|
|