บันทึกการใช้ foreign key ใน GORM
บังเอิญไปเจอปัญหามาตอนที่ query data โดยใช้ gorm แล้ว foreign key จากอีก table ดันไม่ใช่คอลัมน์ที่เป็น primary key เลยอยากจะมาเขียนบันทึกวิธีใช้ foreign key ใน gorm ในรูปแบบต่าง ๆ ไว้สักหน่อย
แบบแรกเลย การใช้ foreign key แบบเบสิคเลยครับ ซึ่งปกติถ้าเราไม่กำหนดอะไร gorm จะ references ไปหา primary key ของ table user ซึ่งก็คือ ID ซึ่งเราอาจจะกำหนดค่า references ได้ด้วยครับ
แบบต่อมาเลยคือการที่ foreign key เป็นคอลัมน์อื่น ๆ ที่ไม่ใช่ primary key ซึ่งวิธีนี้คุณควรทำ index ให้กับคอลัมน์นั้น ๆ ด้วย ไม่อย่างนั้นการ query อาจจะมีปัญหาเรื่องของระยะเวลาได้
ประมานนี้เลยครับ อย่าลืมเช็คให้ดีนะครับว่าคอลัมน์ที่นำมาทำ foreign key นั้นข้อมูลเข้ากันได้ ไม่อย่างนั้นอาจจะบึ้มก็เป็นได้ครับ
