Jika saya tidak salah, Anda tidak membutuhkan agar mySql menerapkan hubungan kunci asing agar mereka tetap bekerja di Yii. Menyiapkan batasan FK di mySql memastikan integritas database yang tepat, tetapi menurut saya Yii sebenarnya tidak menggunakannya saat runtime.
Ketika awalnya menjalankan yiic (dari Gii) untuk membangun proyek, saya pikir itu melihat DB untuk membangun hubungan yang tepat dalam Model, tetapi tidak menggunakannya setelah itu.
Yii kemudian menggunakan pengetahuan ini (dari yiic) tentang hubungan tabel untuk membuat hidup Anda lebih mudah dengan menyediakan metode pintasan untuk mengakses data relasional, dan untuk memastikan Anda tidak melanggar batasan mySql dan mendapatkan kesalahan SQL yang buruk, dll. Tetapi Anda masih dapat menggunakan Logika relasi Yii tanpa batasan SQL yang mendasarinya. Satu-satunya masalah adalah jika Yii mengacaukan dan menetapkan FK yang tidak ada atau sesuatu, database Anda tidak akan menangkap kesalahan ini (integritas data Anda akan lebih rentan kesalahan).
Untuk menautkan produk Anda ke departemen, pastikan Anda memiliki bidang department_id di Produk (seperti yang Anda lakukan). Kemudian tambahkan aturan relasi seperti ini ke Produk:
'department' => array(self::BELONGS_TO, 'Department', 'department_id'),
Dan dalam model Departemen Anda:
'products' => array(self::HAS_MANY, 'Product', 'department_id'),
Sekarang Anda harus dapat menggunakan relasi seperti biasa:
$myProductModel->department; // returns the model of the Department referenced
$myDepartmentModel->products; // returns the models of all Products in the department
Semoga berhasil, dan beri tahu saya jika saya jauh dari basis dan itu tidak berhasil untuk Anda!