GitHub ไม่ใช้ Foreign Key เลยแม้แต่นิดเดียว (2016)
(github.com)FK นั้น
-
ทำให้การ sharding ยากขึ้น
-
ทำให้ประสิทธิภาพลดลง และ
-
ยังเป็นปัญหากับการย้ายสคีมาแบบออนไลน์ด้วย
ดังนั้นเราเลยไม่ใช้ FK เลย ไม่ใช้ที่ไหนทั้งนั้น
= รีโปนี้เป็นเรื่องของ gh-ost ซึ่งเป็นเครื่องมือย้ายสคีมาสำหรับ "MySQL" จึงอาจไม่ตรงกับ DB อื่น ๆ และ (แม้จะเป็นประเด็นเมื่อ 3 ปีก่อน แต่มีคอมเมนต์ใหม่พูดว่า postgres 11 ก็ทำ FK sharding ได้ ผู้เขียนจึงมาเขียนคอมเมนต์เพิ่มอีกครั้ง)
= หมายถึงมีการอ้างอิงกันระหว่างตารางด้วย ID แต่ไม่ได้ใช้ข้อจำกัด FOREIGN KEY
1 ความคิดเห็น
ประเด็นสำคัญน่าจะอยู่ที่ว่าตรวจสอบความถูกต้องของความสัมพันธ์ของข้อมูลกันอย่างไร