กรณีวิเคราะห์ฐานข้อมูล 66afb9c6b02e612a23708d9673062e0d508963e849c8d39ed829deef9c9a96a0: หากต้องออกแบบระบบ ควรคำนึงถึงความถูกต้อง ความปลอดภัย และผลกระทบเกี่ยวกับ ร้านอาหารต้องการออกแบบฐานข้อมูลเพื่อเก็บข้อมูลเมนูอาหาร โดยแต่ละเมนูมีส่วนผสมได้หลายชนิด และส่วนผสม 1 ชนิดสามารถอยู่ในหลายเมนูได้ ควรออกแบบความสัมพันธ์ระหว่างตารางเมนูและตารางส่วนผสมในลักษณะใด?

ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-Many) โดยให้ตารางเมนูเป็นตารางหลักและตารางส่วนผสมเป็นตารางรอง
ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One-to-One) โดยเก็บข้อมูลส่วนผสมทั้งหมดไว้ในแถวเดียวกับเมนู
ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many-to-Many) โดยสร้างตารางเชื่อม (Junction Table) ระหว่างตารางเมนูและตารางส่วนผสม
ไม่ควรแยกตาราง ควรเก็บข้อมูลส่วนผสมทั้งหมดเป็น Field เดียวในรูปแบบข้อความในตารางเมนู

เฉลยอธิบาย

ความสัมพันธ์ระหว่างเมนูและส่วนผสมเป็นแบบ Many-to-Many เนื่องจาก 1 เมนูมีส่วนผสมได้หลายชนิด และ 1 ส่วนผสมอยู่ในหลายเมนูได้ การออกแบบที่ถูกต้องคือสร้างตารางเชื่อม (Junction Table หรือ Associative Table) เช่น ตาราง MenuIngredient ที่เก็บ Foreign Key ของทั้งสองตาราง เพื่อรองรับความสัมพันธ์นี้และลดความซ้ำซ้อนของข้อมูลตามหลัก Normalization

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

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