Если бы у меня было 2 таблицы, скажем blog_category и blog, каждый «блог» может принадлежать только к определенной категории, поэтому отношение 1-1 основано на ключе «blog_category_id».
Теперь в моем коде я бы сделал что-то вроде:
//Loop through categories such as
foreach($categories as $cat):
//then for each category create an array of all its posts
$posts = $cat->getPosts(); // This would be another DB call to get all posts for the cat
//do stuff with posts
endforeach;
Теперь мне кажется, что это может оказаться довольно дорогим с точки зрения вызовов БД в зависимости от размера $ категорий.Будет ли это все еще лучшим решением для этого?Или я смогу что-то сделать в коде и сначала получить все категории, а затем извлечь все блоги и сопоставить их с соответствующей категорией через идентификатор?Теоретически это будет всего 2 вызова в БД, теперь размер набора результатов для вызова 2 (блоги) определенно будет больше, но будет ли фактический вызов БД столь же дорогим?
Я бы обычно пошелдля первого варианта, но мне просто интересно, есть ли лучший способ приблизиться к этому, или более вероятно, что дополнительная обработка в PHP будет более дорогой с точки зрения производительности?Также конкретно с точки зрения MVC, если модель возвращает категории, но она также должна возвращать соответствующие блоги для этой категории, я не уверен, как лучше структурировать это, насколько я понимаю, модель не должна возвращать все данныетребуется для просмотра?
Или мне лучше выбрать все категории и блоги, используя внутренние объединения в первом запросе, и создать вывод, который мне нужен?Возможно, используя многомерный массив?
Спасибо