Я сейчас работаю над проектом социальной сети, созданным с нуля.Мне нужно создать стену, которая показывает сообщения и комментарии пользователя и его друзей, а также «лайки» и вложения.В настоящее время лайки, вложения и комментарии возвращаются в циклах для каждого сообщения:
foreach ($messages as $message) {
$message->get_likes();
$message->get_comments();
...
}
, что приводит к огромному количеству запросов.по крайней мере дополнительно 3 за каждое сообщение, содержащее не менее 15 сообщений на стене.поэтому я хочу уменьшить количество запросов, создав более сложные запросы и объединив их на программном уровне следующим образом:
$arr = array();
foreach ($messages as $message) {
$arr[$message->id] = $message->as_array();
$arr[$message->id]['comment'] = array();
foreach ($comments as $comment) {
if ($comment->message_id == $message->id) {
$arr[$message->id]['comment'][$comment->id] = $comment->as_array();
}
}
это выглядит уродливо и сложно, особенно если предположить, что мне также нужно получать лайки и вложениятаким образом.так есть ли лучшая идея, как справиться с этим?