Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Как вы думаете это номальная практика хранить некоторые данные в БД (Mysql) в виде JSON строк? Вот например: У нас есть 1000 постов которые имеют фотки (10 штук к каждому) и например комментарии. И нам нужно выводить в цикле посты (штук 20) в таком формате: Пост с фотками и последними 3-мя комментариями. Например как выводятся посты на стене ВК. Можно ли в таблице с постами сделать 2 дополнительных ячейки (photos и comments) и в них хранить данные в виде JSON строк. Там для фоток JSON строка и такойже для 3-х последних комментариев. Ну а при изменении или добавлении фотки или коммента например обновлять эти поля?
Как мне кажется это сильно снизит нагрузку на БД, вы как думаете?
C NULL-ом разобрался. Но тут дело в том, что вот этот ->limit(3) он достает последние 3 комментария ко всем записям, а мне нужно что бы к каждой из них было. Так получается, что у меня 10 постов и должно достаться например 30 комментариев. По 3 для каждого. А так он для 10-постов достает всего 3.
Не. Что-то NULL возвращает.
В модели с комментариями
public function commentuser()
{
return $this->belongsTo('User');
}
И когда розпаковываю переменную, то : commentuser => null
Да да!! То что нужно)
Эм.. А еще вопрос, а если в таблице с комментариями там есть поле user_id и мне нужно достать еще и фотку и имя коментировавшего? Это в модели комментариев сделать belongsTo("user") ?
Что бы не делать в цикле запрос для получения комментариев
О "ORDER BY created_at DESC LIMIT 3" я в курсе. Меня интересует реализация что бы одним запросом (или несколькими) в итоге вернуть массив типа
array (
array ("title" => "Статья","author" => "Автор","comments" => "массив с комментариями")
)
Всем привет! Не подскажите как грамотно организовать выборку типа: Есть список новостей и к каждой новости нужно достать по 3 последних комментария?
Что бы совсем понятней было, то аналогично тому, как это реализовано в ВК на стене. Тоесть - пост + 3 последних коммента.
Страницы 1