私が間違っていなければ、あなたは必要ありません mySqlに、Yiiで引き続き機能するように外部キー関係を適用させる。 mySqlでFK制約を設定すると、適切なデータベースの整合性が保証されますが、Yiiが実際に実行時にそれを使用するとは思いません。
プロジェクトを構築するために(Giiの)yiicを最初に実行するとき、モデルで正しい関係を構築するためにDBを調べると思いますが、その後はそれらを使用しません。
次に、Yiiはテーブルリレーションシップに関するこの知識(yiicから)を使用して、リレーショナルデータにアクセスするためのショートカットメソッドを提供することで作業を楽にし、mySql制約に違反したり、醜いSQLエラーなどを取得したりしないようにします。基礎となるSQL制約のないYiiリレーションロジック。 唯一の問題は、Yiiが混乱して、存在しないFKなどを割り当てた場合、データベースがこのエラーをキャッチしないことです(データの整合性によりエラーが発生しやすくなります)。
製品を部門にリンクするには、製品にdepartment_idフィールドがあることを確認してください(これはあなたのように聞こえます)。次に、そのような関係ルールをProductに追加します:
'department' => array(self::BELONGS_TO, 'Department', 'department_id'),
そしてあなたの部門モデルでは:
'products' => array(self::HAS_MANY, 'Product', 'department_id'),
これで、通常のように関係を使用できるようになります。
$myProductModel->department; // returns the model of the Department referenced
$myDepartmentModel->products; // returns the models of all Products in the department
幸運を祈ります。私が基地から離れていて、うまくいかない場合はお知らせください。