กรณีวิเคราะห์ฐานข้อมูล 37aaf13bb18d3869359d1695cd870560b5c4c0b797b2da72a1f287c0121eafe5: เมื่อปรับปรุงฐานข้อมูล ควรคำนึงถึงความถูกต้อง ความปลอดภัย และความสอดคล้องของ ในระบบฐานข้อมูลของร้านอาหาร มีตาราง Customer (customer_id, name) และตาราง Menu (menu_id, menu_name) โดยลูกค้า 1 คนสามารถสั่งอาหารได้หลายรายการ และอาหาร 1 รายการสามารถถูกสั่งโดยลูกค้าหลายคน ควรออกแบบความสัมพันธ์ระหว่างตารางทั้งสองอย่างไรให้ถูกต้องตามหลักการฐานข้อมูล?

รวมตาราง Customer และ Menu เข้าด้วยกันเป็นตารางเดียว แล้วใช้ NULL สำหรับข้อมูลที่ไม่มีการสั่งซื้อในแต่ละแถว
เพิ่มคอลัมน์ menu_id หลายคอลัมน์ในตาราง Customer เช่น menu_id1, menu_id2, menu_id3 เพื่อรองรับการสั่งอาหารหลายรายการ
สร้างตารางกลาง Order (order_id, customer_id, menu_id, quantity) เพื่อแยกความสัมพันธ์แบบ Many-to-Many ออกเป็น One-to-Many 2 ความสัมพันธ์
เพิ่มคอลัมน์ customer_id ในตาราง Menu เพื่อระบุว่าลูกค้าคนใดสั่งอาหารรายการนั้น โดยใช้ Primary Key ของ Menu เป็นตัวเชื่อม

เฉลยอธิบาย

ความสัมพันธ์แบบ Many-to-Many ระหว่างลูกค้าและเมนูอาหารต้องแก้ไขด้วยการสร้างตารางกลาง (Junction Table หรือ Associative Table) เช่น ตาราง Order ที่มี customer_id และ menu_id เป็น Foreign Key ซึ่งจะแปลงความสัมพันธ์ Many-to-Many ให้เป็น One-to-Many 2 ความสัมพันธ์ วิธีนี้เป็นมาตรฐานการ Normalize ฐานข้อมูลที่ถูกต้อง ส่วนตัวเลือกอื่นนำไปสู่ปัญหาเช่น Repeating Groups, Data Redundancy หรือการออกแบบที่ไม่สามารถรองรับข้อมูลได้อย่างยืดหยุ่น

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

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