Приветствую! 

Сейчас вы находитесь на странице курса, который посвящен связям сущностей в фреймворке Symfony. Это очень важная тема и в реальной веб-разработке встречается очень часто и у многих начинающих пользователей именно с этим вопросом возникает большинство трудностей. 

Дело в том, что эта тема несколько трудна для восприятия, но надеюсь, что после просмотра этой серии видео вам станет более понятно что это такое: что такое связи сущностей, для чего они нужны и как, самое главное, с ними работать в фреймворке symfony. Итак, давайте начинать.

Сущности в базе данных могут иметь связи между собой. Что же такое связи? Связи - это когда свойством какой-то одной сущности является другая сущность.

Предположим, у нас есть сущность «страница». В базе данных это выглядит как таблица “page”. У нее есть свойство «контент» (“content”), в котором есть некое текстовое содержимое,  дата создания (“date_create”), допустим, позиция, статус и так далее (какие-то поля). И здесь есть такое поле, как категория (“category_id”). 

Обратите внимание на это поле. Внутри этого поля содержится ссылка  (мы позже посмотрим, как это выглядит реально в базе данных) с неким числом – идентификатором. Если перейти по этой ссылке, то у нас открывается сущность категории страницы, где мы можем посмотреть выборку для категории с идентификатором «8». 

Когда поле содержит в себе как свойство ссылку на какую-то другую сущность,  эта ссылка и является связью – связью между двумя сущностями. То есть сущности просто ссылаются друг на друга. Вот это и есть та самая связь.

Давайте рассмотрим простой пример, чтобы стало более понятно, где это может использоваться. Связи могут понадобиться в самых разных моментах при веб-разработке. 

Давайте рассмотрим такой простой пример, чтобы мы просто определились, где же это может понадобиться. Предположим, у нас есть некая сущность «страница» для нашего сайта. И на этой странице может размещаться такой элемент как комментарий – комментарий какого-то пользователя. 

Сам комментарий – это, конечно же, не страница, и внутри страницы мы его размещать не можем. Это отдельная сущность, которая каким-то образом должна внедряться в нашу страницу. 

Этот механизм внедрения комментария, прикрепления его к какой-то странице называется связью. Он создает связь между страницей и комментарием, который к этой странице относится. Вот такой вот смысл связи.

Зачем нам вообще нужны связи между сущностями? Самая главная задача для чего это нужно – для того, чтобы сделать выборку, выборку данных между сущностями. 

Предположим, мы с вами выводим некую страницу и нам нужно отобразить  все комментарии, которые относятся к этой странице. Как вы понимаете, в базе данных эти комментарии содержаться в виде таблицы и их там может быть количество этих комментариев. 

Благодаря связям, мы можем выбрать те комментарии, которые относятся к нашей странице (которая относится к какой-то конкретной сущности, которую мы сейчас отображаем). То есть мы вывели страницу и выводим в соответствующем месте только все те комментарии, которые относятся только к этой странице. 

И точно также можем сделать обратную операцию – мы можем по комментарию найти страницу, которая к нему относится, и вытащить оттуда какую-то информацию. Но самое главное, что нужно понимать, что сущности нам нужны, в первую очередь, для того, чтобы выбрать какие-то данные, какой-то определенный набор данных (которые связанные между собой), который  нам нужен в определенный момент времени.

Пока давайте вот таким теоретическим видением закончим и перейдем к следующей части, где мы разберемся, какие бывают виды связей между сущностями.