กุญแจต่างประเทศคืออะไร?

ฐานข้อมูลประกอบด้วยตารางที่เก็บข้อมูลหรือข้อมูล foreign key เป็นกลไกในฐานข้อมูลเชิงสัมพันธ์ที่อนุญาตให้มีการเชื่อมโยงของตารางเหล่านั้นหรือเพื่อให้ตารางมีความสัมพันธ์ซึ่งกันและกัน มีลักษณะเฉพาะที่คีย์ต่างประเทศต้องมี จะต้องเป็นคอลัมน์หรือกลุ่มคอลัมน์ในตารางที่มีค่าที่สร้างความสัมพันธ์กับค่าในตารางอื่นภายในฐานข้อมูลเดียวกัน

คีย์ต่างประเทศรับประกันว่าแถวในหนึ่งตารางนั้นสอดคล้องกับแถวในตารางอื่น ๆ ดังนั้นการสร้างความสัมพันธ์ทั่วทั้งฐานข้อมูลหรือการอ้างอิง ตารางที่มี foreign key คือ "child" และอีกตารางหนึ่งเป็น "parent" เป็นไปได้ที่ค่าของ foreign key จะเป็นโมฆะหรือว่างเปล่าและเพื่อให้อ้างอิงจริงหรือเกี่ยวข้องกับสิ่งที่เรียกว่าคีย์หลักของตารางที่พบ สิ่งนี้เรียกว่าการอ้างอิงตนเอง

เราต้องมีความเข้าใจที่ดีว่าคีย์หลักคืออะไรก่อนที่จะพยายามเข้าใจแนวคิดเบื้องหลังคีย์ต่างประเทศอย่างเต็มที่ ตัวอย่างเช่นหากมีสองตารางในฐานข้อมูลที่จัดเก็บข้อมูลเกี่ยวกับหนังสือที่ตีพิมพ์สำหรับเว็บไซต์ที่ขายหนังสือหนึ่งตารางอาจเป็นตารางผู้จัดพิมพ์และตารางหนังสืออื่น ๆ ตารางผู้เผยแพร่อาจประกอบด้วยสองคอลัมน์คีย์หลักที่ไม่ซ้ำกันสำหรับทุกระเบียนและคอลัมน์ชื่อผู้เผยแพร่ อย่างน้อยสามคอลัมน์จะเป็นตารางหนังสือโดยถือกุญแจหลักหรือตัวระบุที่ไม่ซ้ำกันสำหรับหนังสือแต่ละเล่มชื่อหนังสือและคอลัมน์ที่จะสร้างความสัมพันธ์กับตารางสำนักพิมพ์ คอลัมน์นั้นจะเป็นคีย์ต่างประเทศ

คีย์หลักสำหรับตารางผู้เผยแพร่อาจมีลักษณะเช่น "pub_id" ที่มีค่าเป็น: P01, P02, P03 เป็นต้นความสัมพันธ์จะถูกสร้างขึ้นด้วยตารางหนังสือหากมีคอลัมน์ pub_id ที่มีค่าเดียวกัน นี่จะเป็นคีย์ต่างประเทศที่จะเกี่ยวข้องกับตารางลูกนี้กลับไปที่แม่ - ตารางผู้เผยแพร่

อย่างไรก็ตาม foreign key สามารถมีชื่อคอลัมน์ที่แตกต่างจาก parent parent ที่อ้างอิงได้ ความเข้าใจอย่างถ่องแท้เกี่ยวกับการทำงานของกุญแจหลักและกุญแจต่างประเทศเป็นสิ่งจำเป็นในการรักษาความสมบูรณ์ของการอ้างอิง ฐานข้อมูลขนาดใหญ่มากที่ประกอบด้วยตารางจำนวนมากหรือเกี่ยวข้องกับตารางทางแยกมีมากกว่าหนึ่งประเภทของความสัมพันธ์ซึ่งสามารถทำให้การทำงานกับคีย์ต่างประเทศซับซ้อนขึ้น