เมื่อต้องการบันทึกข้อมูลครูและวิชาที่สอน ครูหนึ่งคนสอนได้หลายวิชา และวิชาหนึ่งสามารถสอนได้โดยหลายครู ควรออกแบบโครงสร้างฐานข้อมูลอย่างไร

สร้างตารางครูที่มีแอตทริบิวต์เพิ่มเติมสำหรับเก็บรายชื่อวิชาที่สอน
สร้างเพียงตารางวิชา และใส่ Foreign Key ของครูทุกคนที่สอน
สร้างตารางครู และตารางวิชา แล้วใส่ Foreign Key ของครูในตาราง วิชา
สร้างตารางครู ตารางวิชา และตารางสัมพันธ์ (Junction Table) ชื่อ 'ครูสอนวิชา' เพื่ออธิบาย Many-to-Many Relationship

เฉลยอธิบาย

ความสัมพันธ์ Many-to-Many ต้องแก้ไขด้วยการสร้างตาราง Junction Table (ตารางเชื่อมโยง) ซึ่งมี Foreign Key ของทั้งสองตารางแม่ ในกรณีนี้คือ ตาราง 'ครูสอนวิชา' ที่มี Foreign Key ของ 'ครู' และ 'วิชา' เพื่อบันทึกว่าครูใครสอนวิชาไหน ตัวเลือก A ทำให้เกิดข้อมูลซ้ำซ้อนและปัญหา Anomaly ตัวเลือก C ไม่ปฏิบัติตาม 1NF ตัวเลือก D ทำให้สูญเสียข้อมูล

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

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