DbDependency

Halo para pengguna Yii. Mau nanya nih, bagaimana membuat dependency pada CDbCache bila yang di query itu ada 2 tabel misalnya berita_member dan berita_nonmember?.

Kalau satu tabel saya biasa menggunakan tgl update sebagai kondisi dependencynya. Terima kasih

ini kodenya aslinya gimana yah?

Kurang lebih kodenya begini:




$sql = 'SELECT id,judul,isi FROM berita_member UNION SELECT id,judul,isi FROM berita_nonmember';

$dependency = new CDbCacheDependency('SELECT MAX(tgl_update) FROM berita_member');

$model = BeritaMember::model()->cache(3600*24, $dependency)->findAllBySql($sql);



Jadi apabila saya mengupdate berita nonmember isinya tidak update.

wah, belum ada yang pernah pakai cache ya?

udah sih,

kenapa gak dipecah jadi 2 query aja terus dimerge?

kalo saya baca di kodenya CDbCacheDependency dan parentnya CCacheDependency itu parameter hasChanged-nya dia tipenya $mixed (bisa array, tapi bisa scalar juga) dan ngebandinginnya cuman pake operator ‘==’

http://www.yiiframework.com/doc/api/1.1/CCacheDependency#getHasChanged-detail




public function getHasChanged(){

    return $this->generateDependentData()!=$this->_data;

}



jadi bisa aja




$dependency = new CDbCacheDependency('SELECT MAX(tgl_update) FROM berita_member UNION SELECT MAX(tgl_update) FROM berita_nonmember');



atau bisa pake

CChainedCacheDependency

http://www.yiiframework.com/doc/api/1.1/CChainedCacheDependency

tapi kalau saya lihat kodenya itu, bukannya lebih baik, data dari berita_member dicache dengan dependency last update dari table berita_member dan data dari berita_nonmember dicache dengan dependency last_update dari table berita_nonmember,

masalahnya ini agak repot kalau pake multiple dependency, kalau salah satu udah berubah, berarti dua-duanya mesti diquery ulang khan?

ok agan petra, saya coba dulu nanti nek ada perkembangan saya kasih infonya :)

wah ini high level nih… agan petra ada niat buat tulisan dengna bahasa manusia tentang dependency ini gak gan… kayaknya penting banget nih…