Rumah >pembangunan bahagian belakang >tutorial php >Doktrin2: Bagaimana Saya Melaksanakan Pada Delete Cascade untuk penyelenggaraan pangkalan data yang lancar?
Doktrin2: Memahami Pada Lata Padam
Untuk penyelenggaraan pangkalan data yang lancar, selalunya perlu memadamkan rekod anak secara automatik apabila rekod induk yang sepadan dipadamkan . Doctrine2 menyokong fungsi ini melalui "On Delete Cascade", satu ciri yang memastikan rekod anak dialih keluar apabila ibu bapa mereka dialih keluar.
Contoh Entiti
Pertimbangkan entiti berikut:
<code class="php">class Child { /** @ORM\ManyToOne(targetEntity="Father", cascade={"remove"}) */ private $father; } class Father { /** @ORM\Id @ORM\GeneratedValue */ private $id; }</code>
Penyelesaian: Lata Tahap Pangkalan Data
Untuk melaksanakan benar Pada Lata Pada Padam, tambahkan onDelete="CASCADE" pada lajur gabungan kanak-kanak:
Ini menentukan bahawa apabila satu baris dipadamkan daripada jadual Bapa, semua baris yang sepadan dalam jadual Anak akan dipadamkan secara automatik.
Awas: Fahami Lata<code class="php">/** @ORM\JoinColumn(name="father_id", referencedColumnName="id", onDelete="CASCADE") */</code>Adalah penting untuk mengambil perhatian perbezaan antara lata peringkat ORM dan peringkat pangkalan data. Lata peringkat ORM beroperasi dalam UnitOfWork Doctrine dan tidak menjejaskan struktur pangkalan data, manakala lata peringkat pangkalan data mencipta kekangan fizikal dalam pangkalan data. Dalam contoh semasa, lata={"remove"} ialah lata peringkat ORM yang akan mencetuskan pemadaman rekursif dalam UnitOfWork, tetapi ia tidak akan menghasilkan gelagat pangkalan data yang diingini.
Atas ialah kandungan terperinci Doktrin2: Bagaimana Saya Melaksanakan Pada Delete Cascade untuk penyelenggaraan pangkalan data yang lancar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!