คีย์อ้างอิงประกอบมีสองคอลัมน์และต้องห้ามกรณีหนึ่งค่าว่างแต่อีกค่ามีข้อมูล ควรเพิ่มอะไร?

ใช้ MATCH FULL เพื่อให้คีย์ประกอบว่างทั้งหมดหรือจับคู่ครบทุกส่วน
ใช้ ON DELETE CASCADE กับความสัมพันธ์ที่รายละเอียดต้องหมดไปพร้อมแถวหลัก
ใช้ RESTRICT เพื่อปฏิเสธการลบแถวเป้าหมายที่ยังมีแถวอ้างอิง
พิจารณาสร้าง index ที่คอลัมน์ฝั่งอ้างอิง เพราะ foreign key ไม่ได้สร้างให้อัตโนมัติเสมอ

เฉลยอธิบาย

PostgreSQL 18 Documentation: Constraints Section 5.5.5 Foreign Keys รองรับแนวทางว่า ใช้ MATCH FULL เพื่อให้คีย์ประกอบว่างทั้งหมดหรือจับคู่ครบทุกส่วน จึงแก้เงื่อนไขหลักในโจทย์ได้ตรงกว่าแนวทางของประเด็นอื่น

ข้อสอบอื่นในวิชาความรู้เกี่ยวกับระบบฐานข้อมูล (Database System) และ ระบบการบริหารจัดการข้อมูล (Database Management System)

ดูข้อสอบวิชานี้ทั้งหมด →