ระบบบันทึกการศึกษาต้องแสดงความสัมพันธ์ว่า "ศิษย์" มี "เกรด" ในวิชาต่างๆ และแต่ละวิชามี "ผู้สอน" หลายคน เพื่อแสดงความสัมพันธ์ซับซ้อนนี้อย่างถูกต้อง ควรออกแบบโครงสร้างฐานข้อมูลอย่างไร

เพิ่มคอลัมน์ชื่อผู้สอนในตารางเกรด
สร้างตารางเดียวรวมศิษย์ วิชา ผู้สอน และเกรด
สร้างตารางกลางเดียว "ศิษย์_วิชา_ผู้สอน" เก็บรหัสศิษย์ รหัสวิชา รหัสผู้สอน และเกรด
สร้างตาราง: ศิษย์, วิชา, ผู้สอน, เกรด และตารางกลาง "ศิษย์_วิชา" (อ้างอิงศิษย์และวิชา) แล้วสร้างตารางกลางอีกอัน "วิชา_ผู้สอน" (อ้างอิงวิชาและผู้สอน)

เฉลยอธิบาย

ความสัมพันธ์แบบหลายต่อหลายที่ซับซ้อนขึ้น (ศิษย์-วิชา M:M, วิชา-ผู้สอน M:M) สามารถแสดงด้วยตารางกลางเดียว "ศิษย์_วิชา_ผู้สอน" ซึ่งเก็บคีย์นอกของทั้งสามเอนทิตี้ ตัวเลือก A ละเมิดการทำให้ปกติ ตัวเลือก B สร้างตารางกลางสองอัน แต่ไม่เก็บเกรดของศิษย์อย่างเหมาะสม ตัวเลือก C ไม่ได้ระบุแจกจ่ายผู้สอนอย่างชัดเจน

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

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