Foreign Key

ผู้เขียน: John Stephens
วันที่สร้าง: 24 มกราคม 2021
วันที่อัปเดต: 1 กรกฎาคม 2024
Anonim
#9. Создание связей между моделями через класс ForeignKey | Django уроки
วิดีโอ: #9. Создание связей между моделями через класс ForeignKey | Django уроки

เนื้อหา

นิยาม - Foreign Key หมายถึงอะไร

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


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

คีย์ต่างประเทศและการใช้งานนั้นซับซ้อนกว่าคีย์หลัก

ข้อมูลเบื้องต้นเกี่ยวกับ Microsoft Azure และ Microsoft Cloud | ในคู่มือนี้คุณจะได้เรียนรู้ว่าการประมวลผลแบบคลาวด์คืออะไรและ Microsoft Azure สามารถช่วยคุณในการโยกย้ายและดำเนินธุรกิจจากคลาวด์อย่างไร

Techopedia อธิบาย Foreign Key

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

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


การดำเนินการอ้างอิงบางอย่างที่เกี่ยวข้องกับการดำเนินการกับคีย์ต่างประเทศรวมถึงสิ่งต่อไปนี้:

  • เรียงซ้อน: เมื่อแถวในตารางหลักถูกลบคอลัมน์สำคัญต่างประเทศที่ตรงกันในตารางลูกจะถูกลบเช่นกันสร้างการลบแบบเรียงซ้อน
  • Set Null: เมื่อแถวอ้างอิงในตารางหลักถูกลบหรือปรับปรุงค่าคีย์ต่างประเทศในแถวอ้างอิงจะถูกตั้งค่าเป็น null เพื่อรักษาความสมบูรณ์ของการอ้างอิง
  • ทริกเกอร์: การดำเนินการอ้างอิงมักจะถูกนำไปใช้เป็นทริกเกอร์ การดำเนินการกับ foreign key ในหลายวิธีคล้ายกับทริกเกอร์ที่ผู้ใช้กำหนด เพื่อให้แน่ใจว่าการดำเนินการที่เหมาะสมบางครั้งการดำเนินการอ้างอิงจะถูกแทนที่ด้วยทริกเกอร์ที่ผู้ใช้กำหนดเองที่เทียบเท่า
  • ตั้งค่าเริ่มต้น: การดำเนินการอ้างอิงนี้คล้ายกับ "set null" ค่า foreign key ในตารางลูกถูกตั้งค่าเป็นค่าคอลัมน์เริ่มต้นเมื่อแถวอ้างอิงในตารางหลักถูกลบหรือปรับปรุง
  • จำกัด : นี่คือการดำเนินการอ้างอิงปกติที่เกี่ยวข้องกับคีย์ต่างประเทศ ค่าในตารางหลักไม่สามารถลบหรืออัปเดตได้ตราบใดที่มันถูกอ้างอิงโดยคีย์ต่างประเทศในตารางอื่น
  • ไม่มีการดำเนินการ: การดำเนินการอ้างอิงนี้มีลักษณะคล้ายกับฟังก์ชั่น "จำกัด " ยกเว้นว่าจะไม่มีการตรวจสอบการดำเนินการหลังจากพยายามแก้ไขตาราง