SQL: Mencipta Jadual Perhubungan dengan Dua Kenaikan Auto yang Berbeza
Masalah:
Anda ingin membuat jadual hubungan dengan dua lajur autoinkremen, tetapi anda menemui satu ralat.
Penjelasan:
Percubaan anda untuk mewujudkan jadual perhubungan dengan berbilang lajur auto-increment adalah berdasarkan salah faham konsep kunci primer.
Kunci Konsep:
-
Kunci utama: Pengecam unik yang mengenal pasti setiap baris dalam jadual.
-
Autokenaikan: Ciri yang menjana nilai unik secara automatik untuk yang ditentukan lajur.
Kesilapan:
- Menetapkan lajur ID sebagai kunci utama.
- Dengan mengandaikan bahawa lajur ID menyediakan baris keunikan, yang dilakukannya tidak.
Penyelesaian:
-
Alih keluar medan ID yang berlebihan: Hapuskan lajur ID daripada kedua-dua jadual kerana ia tidak diperlukan untuk pengenalan baris.
-
Isytihar baris keunikan: Kuatkuasakan keunikan baris dengan mencipta kekangan unik pada kunci yang diperolehi data, seperti gabungan medan nama. Contohnya:
CREATE TABLE relational_table (
name_first CHAR(30),
name_last CHAR(30),
CONSTRAINT PK
PRIMARY KEY ( name_last, name_first )
)
Salin selepas log masuk
-
Buat jadual bersekutu: Untuk mewujudkan hubungan antara kedua-dua jadual, buat jadual bersekutu yang menggunakan kekunci utama daripada kedua-dua jadual sebagai kunci utama. Contohnya:
CREATE TABLE user_sport (
user_name CHAR(16) NOT NULL, -- FK
sport_code CHAR(4) NOT NULL, -- FK
start_date DATE NOT NULL,
CONSTRAINT PK
PRIMARY KEY ( user_name, sport_code )
)
Salin selepas log masuk
-
Alih keluar pernyataan autoink: Autokenaikan tidak diperlukan untuk jadual hubungan dan boleh menyebabkan kekeliruan.
Kebaikan Pembuangan:
- Menguatkuasakan keunikan baris.
- Meningkatkan integriti data.
- Menghapuskan rekod pendua.
- Memudahkan perhubungan utama asing.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Jadual Perhubungan dengan Dua Lajur Auto-Tambahan Berasingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!