у меня 3 таблицы.
- пользователей,
- кампаний,
- ссылки.
У них есть отношения один ко многим . У пользователя много кампаний. Кампания имеет много ссылок.
Я рассчитываю самых популярных пользователей, подсчитывая общее количество ссылок, которые есть у каждого пользователя. Поэтому я объединяю 3 таблицы и группируюсь по пользователю и выбираю пользователя и сумму (ссылки).
Этот запрос включает 3 таблицы. У меня уже есть 3 модельных класса для каждой из этих таблиц. Теперь мой вопрос в какой модели я должен поставить этот запрос? Должен ли он идти в пользовательской модели (как я ее называю top10users ? Или есть другой способ получить эту информацию, используя уже существующие 3 модели. Я хочу знать, что наиболее подходит с точки зрения MVC.
Дополнительная информация
Я использую orm в Kohana .
Запрос:
SELECT u.id,
u.name,
SUM(l.num_visited) total_num_visited
FROM users u
JOIN campaigns c
ON ( u.id = c.user_id )
JOIN links l
ON ( c.id = l.campaign_id )
GROUP BY u.id
ORDER BY total_num_visited DESC
LIMIT 10;