1. Это увеличит нагрузку на БД.
2. Само по себе решение продиктовано только дикостью и чудовищным невежеством. Через годика два, если наберешься опыта, то сам с ужасом будешь смотреть на этот свой вопрос.
Описанная структура до мозга костей реляционная. Никаких джейсонов тут даром не нужно. Если сделать нормальные три таблицы, то любой фреймворк из коробки предоставит средства управления (добавление, удаление, редактирование) этими комментами и фотками и чем угодно,
одной-единственной командой. Для самопального джейсона же придется писать всю обвязку самому, и потом окончательно в ней запутаться.
Если взять ларавель, то в модели постов надо будет добавить метод
public function recentComments()
{
return $this->hasMany('Comment')
->orderBy('created_at', 'desc')
->limit(3);
}
и ВСЯ лента будет строиться одним оператором, что-то вроде
return Post::orderby('created_at', 'desc')
->with([
'photos',
'recentComments',
]);
->limit(5);