cms/block
エンティティには結合テーブルcms_block_store
があります。これは、特定のブロックを1つ以上のストアにリンクするレコードです。CE 1.6 より前は、エンティティが削除される前にリソースモデルMage_Cms_Model_Mysql4_Block
(リンク)がこれらのレコードを個別に削除することはなく、カスケードを使用してレコードを効果的に削除していました。1.6.0.0以降、再配置されたリソースモデルは、エンティティがから削除される前にMage_Cms_Model_Resource_Block::_beforeDelete
(リンク) 内のこれらのレコードを明示的に削除します。cms_block
protected function _beforeDelete(Mage_Core_Model_Abstract $object)
{
$condition = array(
'block_id = ?' => (int) $object->getId(),
);
$this->_getWriteAdapter()->delete($this->getTable('cms/block_store'), $condition);
return parent::_beforeDelete($object);
}
以前のようにカスケードに依存するのではなく、2つの別々のクエリでこの操作を実行する明らかな理由はありますか?
Magentoコアチームはここを読んでいますか?
—
アレックス
そう願います!ここで良い答えが得られない場合は、数日待って、そのうちのいくつかにpingします。
—
ベンマークス2013
コードをリファクタリングしたインターンは、これは良いアイデアだと思ったかもしれません...データベースからいくつかのものを移動し、ロジックをコードレベルに保ちます。
—
FlorinelChis 2013
pingする時間です:-)
—
Alex
@Alex-私は今週末LAで彼らと付き合い、ここで更新します。
—
benmarks 2013年