Penomboran Auto Kunci Kompaun PostgreSQL: Pendekatan Ringkas
Menjejaki perubahan alamat individu dari semasa ke semasa memerlukan pengecam unik untuk setiap perubahan dalam sejarah seseorang. Walaupun skim penomboran automatik yang kompleks wujud, PostgreSQL menawarkan penyelesaian yang lebih bersih dan cekap menggunakan lajur bersiri atau IDENTITI.
Mengelakkan Kerumitan
Kaedah tradisional selalunya membawa kepada sistem penomboran yang rumit dan mudah ralat. Ciri terbina dalam PostgreSQL menyediakan alternatif yang diperkemas.
Penyelesaian Disyorkan: Lajur Bersiri/IDENTITI
Memanfaatkan lajur serial
atau IDENTITY
PostgreSQL memudahkan proses dengan ketara. Ini menghapuskan keperluan untuk mengurus urutan yang kompleks.
Contoh Pelaksanaan
Berikut ialah cara untuk melaksanakan ini dalam jadual address_history
:
<code class="language-sql">CREATE TABLE address_history ( address_history_id serial PRIMARY KEY, person_id int NOT NULL REFERENCES people(id), created_at timestamptz NOT NULL DEFAULT current_timestamp, previous_address text );</code>
Mendapatkan Nombor Berjujukan
Untuk mendapatkan nombor turutan bagi setiap pertukaran alamat bagi setiap orang, gunakan fungsi tetingkap row_number()
:
<code class="language-sql">CREATE VIEW address_history_nr AS SELECT *, row_number() OVER (PARTITION BY person_id ORDER BY address_history_id) AS adr_nr FROM address_history;</code>
Paparan ini bertindak sebagai pengganti langsung untuk jadual address_history
dalam pertanyaan, memberikan nombor jujukan (adr_nr
) untuk setiap perubahan alamat.
Peningkatan Utama
timestamptz
(cap masa dengan zon waktu) untuk ketepatan dan ketekalan yang dipertingkatkan.address
dan original_address
berlebihan, memudahkan struktur jadual. Hanya previous_address
yang perlu.Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Auto-Penomboran untuk Kunci Kompaun dengan Cekap dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!