Untuk entitas cms / blok, mengapa data bawahan dihapus dari cms_page_store secara eksplisit?


8

cms/blockentitas memiliki tabel gabungan cms_block_store, catatan yang menautkan blok yang diberikan ke satu atau lebih toko. Sebelum CE 1.6, model sumber daya Mage_Cms_Model_Mysql4_Block(tautan) tidak secara terpisah menghapus catatan-catatan ini sebelum entitas dihapus, secara efektif mengandalkan kaskade untuk menghapusnya. Pada 1.6.0.0, model sumber daya yang dipindahkan secara eksplisit menghapus catatan ini di Mage_Cms_Model_Resource_Block::_beforeDelete(tautan) sebelum entitas dihapus dari 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);
}

Apakah ada alasan yang jelas untuk melakukan operasi ini dalam dua pertanyaan terpisah daripada mengandalkan kaskade seperti sebelumnya?


Apakah tim inti Magento membaca di sini?
Alex

Saya berharap begitu! Saya akan menunggu beberapa hari dan melakukan ping beberapa dari mereka jika kita tidak mendapatkan jawaban yang baik di sini.
patokan

mungkin pekerja magang yang refactored kode pikir ini adalah ide yang bagus ... pindahkan beberapa hal dari database, pertahankan logika pada level kode.
FlorinelChis

jadi waktu untuk ping mereka :-)
Alex

2
@Alex - Saya akan bergaul dengan mereka di LA akhir pekan ini dan akan memperbarui di sini.
patokan

Jawaban:


3

Bagi saya ini kemungkinan besar berkaitan dengan swap ke sistem manajemen basis data relasional (RDBMS). Mengandalkan fungsionalitas cascading database bisa menjadi masalah di sistem yang berbeda, sehingga logika telah ditambahkan secara manual dalam model Resource baru.

Hal yang sama dapat dilihat dalam Mage_Cms_Model_Resource_Page::_beforeDelete()metode Mage_Polldan Mage_Reviewmodel dan juga (meskipun ini terjadi dalam _afterSave()metode.

Baca lebih lanjut tentang pertukaran Magento ke RDBMS di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.