Zend Frameworkで多対多のテーブルをMyISAMなどリレーション無しで扱う場合
Zend Frameworkで多対多のテーブルをリレーション無しで扱う。:: PHPの種 ブログ
つまり強制MyISAMのさくらレンサバでは。。
$_dependentTablesを指定しましょう。
で、ある程度Zend_Db_Tableで保管ができるので、それを利用させてもらいましょう。
PHP:
-
class BugsProducts extends Zend_Db_Table_Abstract
-
{
-
protected $_name = 'BugsProducts';
-
'columns' => 'bug_id',
-
'refTableClass' => 'Bugs',
-
'refColumns' => 'id',
-
'onDelete' => self::CASCADE,
-
'onUpdate' => self::CASCADE
-
),
-
'columns' => 'product_id',
-
'refTableClass' => 'Products',
-
'refColumns' => 'id',
-
'onDelete' => self::CASCADE,
-
'onUpdate' => self::CASCADE
-
)
-
);
-
}
んで、リファレンスを貼られたほうのテーブルで
PHP:
-
class Products extends Zend_Db_Table_Abstract
-
{
-
protected $_name = 'products';
-
}
DependetTablesをクラス名で指定しておきます。
これでDeleteがCascadeされたりなど、Zend_Db_Table側でリレーションを保管してくれます。
そもそもInnoDBが使えればいいんですけどねえ。。
関連する記事:
- Zend Frameworkで多対多のテーブルをリレーション無しで扱う。:
- Zend Frameworkで多対多のテーブルを簡単に扱う。
- Zend Frameworkで多対多のテーブルを簡単に扱うの追記。
- Zend_Db_Table_AbstractでZend_Cacheを利用して負荷軽減
- Zend Framework - Zend_Db_Selectのメモ
Powered by MightyAdsense
トラックバック URL :