Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день, возникли очередные вопросы по организации бд. Рассмотрим на примерах из документации: http://laravel.com/docs/5.1/eloquent-re … ny-through
Имеются таблицы страны, пользователи, посты. Хотим всегда легко получать все посты принадлежащие определенной стране - все замечательно. Добавляем еще одну таблицу - комментарии к постам. Теперь хотелось бы получать комментарии принадлежащие постам определенной страны(то есть получить комментарии через таблицу постов с которой у нас есть связь через таблицу пользователей), возможно ли реализовать такую связь 'через через' или как лучше поступить? Комментарии нам нужны хотя бы для того что бы оценить насколько активно обсуждаются посты принадлежащие определенной стране, то есть к примеру получить количество комментариев к постам созданным пользователями определенной страны.
Вариант организовать связь через пользователей не подходит, так как нас интересуют комментарии оставленные к посту принадлежащему стране, а пользователи оставившие эти комментарии могут быть совершенно из других стран. Пока реализовал решение в лоб: получаем посты страны и у каждого получаем комментарии, но надеюсь существуют более красивые и гибкие варианты решения.
Не в сети
А если более конкретно интересует возможно ли и как реализовать связь 1 ко многим через 2 промежуточные таблицы, а не через одну как в документации.
Изменено TuX560 (31.07.2015 15:35:36)
Не в сети
Полиморфы?
Не в сети
не совсем понял как их тут применить? добавить связь страны с пользователями, постами и комментариям? и чем она лучше в данном случаи обычной связи? У нас каждая модель по цепочке связана 1 ко многим, то есть одна страна связана с многими пользователями, пользователь связан с многими постами, пост связан с многими комментариями. А в документации указан пример который связан либо с той либо с другой моделью, у нас есть жесткие связи соседних моделей которые нам необходимы в любом случаи
Изменено TuX560 (03.08.2015 09:33:57)
Не в сети
> и чем она лучше в данном случаи обычной связи?
тем что позволяет что угодно связать с чем угодно. хоть в таблице связей хоть в связуемой таблице.
в документации мало инфы, читайте laravel.io и stack overflow
Не в сети
и не спрашивайте "как", получив направление - ищите требуемое.
- потому что за вас никто работать не будет
- потому что найдя сам - назавтра не спросишь тоже самое опять.
Не в сети
благодарю, и так сначала сам ищу, но ход мыслей не ясен. В данный момент, насколько я понял эту связь, она использует 2 поля, что добавляет избыточности. И как эту избыточность грамотно использовать в данном случаи, что бы она еще и помогла в решении данной задачи, я понять никак не могу. Пойду еще почитаю, но пока не считаю что это чем-либо лучше в данной ситуации обычных связей
Не в сети
Страницы 1