Rumah > pangkalan data > tutorial mysql > Bagaimanakah saya boleh memautkan jadual dengan kunci utama komposit dan kunci asing satu lajur dalam MySQL?

Bagaimanakah saya boleh memautkan jadual dengan kunci utama komposit dan kunci asing satu lajur dalam MySQL?

Susan Sarandon
Lepaskan: 2024-12-26 03:15:11
asal
494 orang telah melayarinya

How can I link tables with a composite primary key and a single-column foreign key in MySQL?

Memautkan Jadual dengan Kekunci Utama dan Kekunci Asing Komposit

Dalam bidang reka bentuk pangkalan data SQL, anda mungkin menghadapi situasi di mana kunci utama jadual mengandungi berbilang lajur, membentuk kunci komposit. Mewujudkan perhubungan antara jadual sedemikian menggunakan kekunci asing boleh menjadi tugas untuk menavigasi.

Pertimbangkan senario yang diberikan melibatkan dua jadual, 'tutorial' dan 'kumpulan'. Jadual 'tutorial' menampilkan kunci utama komposit yang terdiri daripada 'beggingTime', 'day' dan 'tutorId', manakala jadual 'group' mempunyai kunci primer auto-incrementing 'groupId'. Timbul persoalan: bagaimanakah kita boleh mengaitkan jadual ini dengan lancar?

Dokumentasi MySQL menawarkan penyelesaian: adalah mungkin untuk mencipta pemetaan kunci asing dalam 'kumpulan' merujuk kunci utama komposit dalam 'tutorial'. Walau bagaimanapun, ini melibatkan penambahan lajur tambahan pada jadual 'kumpulan', satu untuk setiap kunci utama yang sepadan dalam 'tutorial'.

Sebagai contoh, menambah lajur ini dan mengisytiharkan kunci asing dalam jadual 'kumpulan' akan mewujudkan perhubungan:

ALTER TABLE `group` ADD COLUMN `beggingTime` time NOT NULL;
ALTER TABLE `group` ADD COLUMN `day` varchar(8) NOT NULL;
ALTER TABLE `group` ADD COLUMN `tutorId` int(3) NOT NULL;

ALTER TABLE `group` ADD FOREIGN KEY (`beggingTime`, `day`, `tutorId`) REFERENCES `tutorial`(`beggingTime`, `day`, `tutorId`);
Salin selepas log masuk

Perlu diambil perhatian bahawa pendekatan ini mungkin tidak optimum dari perspektif prestasi. Enjin pangkalan data SQL dioptimumkan untuk kunci utama yang terdiri daripada lajur tunggal. Oleh itu, pertimbangkan untuk mereka bentuk semula jadual 'tutorial' untuk menggunakan kunci utama pengganti berbanding kunci utama komposit. Strategi ini akan meningkatkan prestasi kerana ia lebih sejajar dengan cara SQL distrukturkan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh memautkan jadual dengan kunci utama komposit dan kunci asing satu lajur dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan