Как правильно поступить в MVC

Алексей Е
В общем как я понял, основная идеология MVC, это не мешать мухами с котелтами.
 
задача: Вывести все посты, а напротив них список меток(tags) , которые относятся к этому посту.
Есть варианты:
1) Вывести туоп все посты, а потом по отдельности для каждого поста искать соответствующие метки  (количество запросов  = количество постов * количество меток в каждом посте)
2)
 Select posts.id ,posts.name,GROUP_CONCAT(tags.name) as metki_name ,GROUP_CONCAT(tag_post.tag) as metki_id from posts

LEFT JOIN tag_post ON posts.id = tag_post.post
LEFT JOIN tags ON tag_post.tag = tags.id
group by posts.id
тут 1 запрос, и возвращаем результат сразу же в одну строку. 3) тоже самое что и 2 вариант, только не группировать.
т.е. допустим если у нас 1000 постов, и у каждого поста привязано по 10 меток, бы получим 10 000 строчек
кто бы какой метод выбрал? Я пока что выбрал второй вариант, выполняю запрос в модели, перемещаю в контроллер и пихаю результат в массив $posts , но тут встал вопрос, как быть , ведь в view нельзя вести никакие расчеты, можно тупо выводить...
А в контроллере я не могу вести расчет, так как нужно обрабатывать конкретную запись($item), а конкретная запись у нас доступно только в View в цикле forech ($posts  as $item) {}
Понимаю что можно куча костылей придумать, но как делать по правильному?
подскажитеплиз
Алексей Е почти 2 года назадСпасибо 0
0 чел.