Melaksanakan Pewarisan Jadual Tunggal dengan Laravel's Eloquent
Apabila bekerja dengan model pangkalan data, warisan menyediakan cara untuk mentakrifkan hierarki entiti berkaitan. Walau bagaimanapun, apabila memilih antara warisan jadual tunggal dan berbilang, yang kedua sering muncul sebagai penyelesaian yang lebih cekap dan fleksibel.
Warisan Jadual Tunggal
Walaupun secara konsepnya lebih ringkas, jadual tunggal warisan memerlukan menyimpan semua lajur untuk semua jenis dalam satu jadual, yang membawa kepada potensi percambahan nilai NULL. Ini boleh memberi kesan kepada prestasi pangkalan data, terutamanya dengan set data yang besar.
Warisan Berbilang Jadual dengan Fasih
Warisan berbilang jadual melibatkan pembahagian jadual tunggal kepada berbilang, setiap satu sepadan dengan jenis model tertentu. Rangka kerja Eloquent Laravel menawarkan perhubungan polimorfik untuk mengurus perhubungan ini dengan lancar.
Model Pos
Kelas asas untuk semua jenis siaran, Post, mewakili lajur kongsi dan mentakrifkan boleh dipos hubungan polimorfik:
<code class="php">class Post extends Eloquent { public function postable() { return $this->morphTo(); } }</code>
Model Soalan/Artikel
Setiap jenis siaran tertentu, seperti Soalan atau Artikel, dilanjutkan daripada Post dan mentakrifkan hubungan morphOne dengan model asas :
<code class="php">class Question extends Post { public function post() { return $this->morphOne('Post', 'postable'); } }</code>
Contoh Penggunaan
Mencipta Soalan Baharu
Mencipta Soalan baharu memerlukan memautkannya ke jadual Post untuk mengekalkan warisan berbilang jadual:
<code class="php">$post = new Post(); $post->shared_column = 'New Question Post'; $post->save(); $question = new Question(); $question->question_column = 'My Question'; $question->save(); $question->post()->save($post);</code>
Walaupun warisan berbilang jadual melibatkan lebih kerumitan , ia menawarkan struktur pangkalan data yang lebih bersih, meningkatkan prestasi dan membolehkan lebih fleksibiliti untuk memodelkan perhubungan yang kompleks.
Untuk tutorial komprehensif tentang warisan berbilang jadual dalam Laravel, rujuk sumber yang disediakan dalam jawapan soalan asal.
Atas ialah kandungan terperinci **Warisan Jadual Tunggal lwn. Warisan Berbilang Jadual dengan Fasih: Manakah yang Sesuai untuk Aplikasi Laravel Anda?**. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!