Решил для себя окончательно уяснить, как Yii генерирует запросы к базе, если мы указываем связи в модели данных. На опыте)) Организовал очень несложную проверку. Для теста возьмем структуру базы данных из двух таблиц, которые свяжем внешним ключем.

Структура данных

Структура таблиц

    User                Person

    userId      PK      personId    PK
    personId    FK

Тестовые данные

    User                Person

    2                   1
    1

Пусть в общем смысле User - таблица модели, а Person - таблица назначения. Для модели User мы можем использовать приведенные ниже варианты связи. Результаты формирования строк запроса смотрим в логе базы данных.

Результаты тестов

1) Первый вариант

    'person' => array(
        self::HAS_ONE,
        'Person',
        'userId',
    )

Сформированный запрос

    SELECT ...
        FROM `Person` t1
        WHERE t1.`userId` = '2'

2) Второй вариант

    'person' => array(
        self::HAS_ONE,
        'Person',
        'personId',
    )

Сформированный запрос

    SELECT ...
        FROM `Person` t1
        WHERE t1.`personId` = '2'

3) Третий вариант

    'person' => array(
        self::BELONGS_TO,
        'Person',
        'userId',
    )

Сформированный запрос

    SELECT ...
        FROM `Person` t1
        WHERE t1.`personId` = '2'

4) Четвертый вариант

    'person' => array(
        self::BELONGS_TO,
        'Person',
        'personId',
    )

Сформированный запрос

    SELECT ...
        FROM `Person` t1
        WHERE t1.`personId` = '1'

Выводы

При формировании запросов (как это и логично) значение для столбца из таблицы назначения, с которой связывается модель, берется из таблицы модели. Для связи типа HAS_ONE всегда берется PK таблицы модели данных и применяется к столбцу таблицы назначения, указанному в последней колонке. Для запроса типа BELONGS_TO значение определяется колонкой, указанной в последнем параметре и применяется к PK таблицы модели.

Корректным для нашей структуры является 4й вариант запросов.