Реляционные связи Active Record Yii — в трёх словах

Что нужно запомнить?

Есть три основных типа связей в реляционных базах данных:

  1. Один ко многим [BELONGS_TO / HAS_MANY].
    Как пример:
    Есть пользователь в таблице user(A), и есть таблица заказов orders(B). Соответственно записи заказов B принадлежат одному пользователю в таблице А.  Заказы относятся к пользователю(BELONGS TO).
    Также если рассмотреть что у пользователя А есть много заказов В то для пользователя такая связь называется HAS_MANY (пользователь имеет много заказов).
  2. Один к одному [HAS_ONE].
    Одна запись может иметь в связях только одну запись в другой таблице.
  3. Многие ко многим [MANY_MANY].
    У одной записи может быть много категорий, а у категорий может быть много записей.

Записать связи нужно в вашем active record классе модели:

public function relations()
{
        return array(
            'author'=>array(self::BELONGS_TO, 'User', 'author_id'),
        );
}

Соответственно, потом при выборке вы можете сразу работать с полем author так как он будет подгружен в выборку автоматически.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *