В версии >= Yii 1.0.1 можно использовать relations для ISAM без всяких патчей.
Версия Yii 1.0.0.
--- framework\db\schema\mysql\CMysqlSchema.php.orig 2008-12-03 22:52:28.000000000 +0300 +++ framework\db\schema\mysql\CMysqlSchema.php 2008-12-30 22:09:44.000000000 +0300 @@ -162,7 +162,7 @@ */ protected function findConstraints($table) { - $row=$this->getDbConnection()->createCommand('SHOW CREATE TABLE '.$table->rawName)->queryRow(); + if( ( $row=$this->getDbConnection()->createCommand('SELECT `constraint` FROM `Constraints` WHERE `table`="'.$table->name.'"')->queryRow() ) === false ) return; $matches=array(); $regexp='/FOREIGN KEY\s+\(([^\)]+)\)\s+REFERENCES\s+([^\(^\s]+)\s*\(([^\)]+)\)/mi'; foreach($row as $sql)
После этого создаём таблицу `Constraints` с двумя полями: `table` как Varchar(100) и `constraint` как Text. Соответственно, для каждой записи в поле `table` заносится имя таблицы для связи, в поле `constraint` строка (или несколько строк, или просто несколько записей разделённых, например, пробелом) создания связи вида:
[CONSTRAINT ]FOREIGN KEY (<локальное_поле>) REFERENCES <удалённая_таблица>(<удалённое_поле>)
Дискуссия