Menguatkuasakan Bendera Lalai Unik dalam Rekod Pangkalan Data
Dalam pengurusan pangkalan data, selalunya perlu memastikan bahawa hanya satu rekod dalam set data tertentu boleh ditandakan sebagai lalai. Sebagai contoh, sistem mungkin mempunyai koleksi rekod pelanggan di mana hanya seorang pelanggan ditetapkan sebagai lalai untuk tujuan pengebilan. Untuk menangani keperluan ini, kekangan pangkalan data boleh dilaksanakan.
Menggunakan Indeks Penapis Unik
Pada SQL Server 2008 atau lebih baru, penggunaan indeks yang ditapis unik menyediakan penyelesaian yang cekap :
CREATE UNIQUE INDEX IX_TableName_FormID_isDefault ON TableName(FormID) WHERE isDefault = 1
Dalam senario ini, struktur jadual termasuk:
CREATE TABLE TableName( FormID INT NOT NULL, isDefault BIT NOT NULL )
Indeks ini memastikan bahawa untuk mana-mana FormID tertentu, hanya satu rekod boleh menetapkan bendera isDefault kepada 1. Jika berbilang rekod dengan percubaan FormID yang sama untuk menetapkan bendera ini, ralat akan berlaku , seperti:
Tidak boleh memasukkan baris kunci pendua dalam objek 'dbo.TableName' dengan indeks unik 'IX_TableName_FormID_isDefault'. Nilai kunci pendua ialah (1).
Dengan memanfaatkan indeks yang ditapis unik, anda boleh melaksanakan kekangan dengan berkesan untuk memastikan bahawa hanya satu rekod bagi setiap kriteria yang ditentukan (dalam kes ini, FormID) boleh ditetapkan sebagai lalai.
Atas ialah kandungan terperinci Bagaimana untuk Menguatkuasakan Bendera Lalai Unik dalam Rekod Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!