เมื่อออกแบบตาราง 'ศิษย์' และตาราง 'วิชา' โดยศิษย์ 1 คนสามารถลงทะเบียนได้หลายวิชา และวิชา 1 วิชาสามารถมีศิษย์ได้หลายคน ต้องใช้วิธีใดในการแสดงความสัมพันธ์แบบหลายต่อหลาย (M:M) ได้อย่างถูกต้อง

สร้างตารางเชื่อม (Junction Table) ที่มี Foreign Key อ้างอิงทั้งตาราง 'ศิษย์' และตาราง 'วิชา'
เพิ่มคอลัมน์ Foreign Key ของตาราง 'วิชา' ลงในตาราง 'ศิษย์' โดยตรงให้ครบทุกวิชา
เพิ่มคอลัมน์ Foreign Key ของตาราง 'ศิษย์' ลงในตาราง 'วิชา' โดยตรงให้ครบทุกคน
ใช้ Primary Key เดียวกันร่วมกันระหว่างตาราง 'ศิษย์' และตาราง 'วิชา' เพื่อเชื่อมความสัมพันธ์

เฉลยอธิบาย

ความสัมพันธ์แบบ M:M ไม่สามารถแสดงได้โดยตรงในฐานข้อมูลเชิงสัมพันธ์ วิธีที่ถูกต้องคือการสร้างตารางเชื่อม (Junction Table หรือ Bridge Table) เช่น ตาราง 'ลงทะเบียน' ซึ่งมี Foreign Key อ้างอิงไปยัง Primary Key ของตาราง 'ศิษย์' และ Primary Key ของตาราง 'วิชา' ทำให้ความสัมพันธ์ M:M ถูกแปลงเป็นความสัมพันธ์ 1:M 2 ชุด ส่วนตัวเลือกอื่นไม่สามารถรองรับข้อมูลได้ครบถ้วนและละเมิดหลักการ Normalization

ข้อสอบอื่นในวิชาความรู้ความสามารถในการวิเคราะห์ ออกแบบ ฐานข้อมูล

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