Activerecord Yii adalah pelaksanaan pemetaan objek-relasi (ORM) yang memudahkan interaksi pangkalan data dengan mewakili jadual pangkalan data sebagai kelas PHP. Setiap jadual sepadan dengan kelas model, dan setiap baris dalam jadual diwakili sebagai contoh kelas itu. Ini membolehkan anda berinteraksi dengan pangkalan data anda menggunakan teknik pengaturcaraan berorientasikan objek yang biasa dan bukannya menulis pertanyaan SQL mentah.
Activerecord mencapai pemetaan ini melalui beberapa mekanisme utama:
Kelas: Anda membuat kelas PHP yang melanjutkan yii \ db \ Activerecord
. Kelas -kelas ini menentukan sifat -sifat yang memetakan ke lajur pangkalan data dan menyediakan kaedah untuk berinteraksi dengan data. padam ()
, dan sebagainya. Kaedah-kaedah ini abstrak dari pertanyaan SQL yang mendasari. Mata: yii \ cache \ cache
) untuk menyimpan data yang sering diakses dalam memori, mengurangkan beban pangkalan data. batchupDate ()
, dan batchDelete ()
untuk manipulasi data berskala besar, meningkatkan prestasi dengan ketara ke atas operasi rekod individu. Hanya memuatkan data yang berkaitan apabila anda benar -benar memerlukannya. Yii tidak mengendalikan pengindeksan secara langsung; Ini adalah pengoptimuman peringkat pangkalan data. yii \ db \ query
) Pertanyaan? Mengoptimumkan pertanyaan pangkalan data dalam Activerecord Yii melibatkan beberapa strategi utama:
orwhere ()
, dan lain -lain) Untuk mensasarkan pengambilan data anda dengan tepat. Memilih semua lajur ( pilih *
) boleh menjadi lebih perlahan, terutamanya dengan jadual besar. count ()
dengan cekap: menggunakan count () dengan bijak; Elakkan jumlah yang tidak perlu. Jika anda hanya perlu menyemak kewujudan, gunakan Exists ()
. di mana
klausa dan membuat indeks dengan sewajarnya. Alat profil Yii untuk mengenal pasti pertanyaan perlahan dan kesesakan. Ini akan membimbing usaha pengoptimuman anda. hasone ()
dalam model yang berkaitan. hasmany ()
dalam model yang berkaitan. Ini memerlukan jadual persimpangan dan ditakrifkan menggunakan hasmany ()
dengan viatable ()
atau via ()
spesifikasi. <code class="php"> // Post model Public Function GetComments () {return $ this- & gt; hasmany (Comment :: className (), ['post_id' = & gt; 'id']); } // Comment Model Public Function getPost () {return $ this- & gt; hasone (post :: className (), ['id' = & gt; 'post_id']); } </code>
Sekarang anda boleh mengakses komen yang berkaitan dengan jawatan seperti ini:
<code class="php"> $ post = post :: findOne (1); foreach ($ post- & gt; komen sebagai $ komen) {// akses Comment Properties} </code>
Ingat untuk menentukan kunci asing dengan betul dalam jadual pangkalan data anda. Menggunakan dengan ()
untuk pemuatan bersemangat sangat disyorkan untuk mengurangkan pertanyaan pangkalan data apabila mengakses model yang berkaitan. Activerecord:
dengan ()
untuk memuatkan data berkaitan dalam pertanyaan tunggal. Atas ialah kandungan terperinci Bagaimanakah Activerecord Yii berfungsi dan bagaimana saya boleh menggunakannya dengan cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!