ในการออกแบบฐานข้อมูลสำหรับร้านค้าออนไลน์ มีตารางสินค้า (Product) ตารางคำสั่งซื้อ (Order) และตารางรายละเอียดคำสั่งซื้อ (OrderDetail) ทำไมจึงต้องมีตารางรายละเอียดคำสั่งซื้อแยกต่างหาก?
กเพิ่มรายการของอีกฝ่ายเป็นหลายคอลัมน์ซ้ำกันในตารางหลักตารางใดตารางหนึ่ง
ขเก็บรหัสของอีกฝ่ายเป็นข้อความคั่นด้วยจุลภาคในคอลัมน์เดียวของแต่ละแถว
คสร้างตารางเชื่อมที่เก็บคีย์นอกของทั้งสองฝ่ายและข้อมูลของความสัมพันธ์
งคัดลอกข้อมูลเต็มของทั้งสองฝ่ายมาเก็บซ้ำในทุกแถวที่เกิดความสัมพันธ์
เฉลยอธิบาย
ความสัมพันธ์หลายต่อหลายแทนด้วยตารางที่สามซึ่งแบ่งเป็นสองความสัมพันธ์หนึ่งต่อหลาย ดังนั้นคำตอบที่เหมาะที่สุดคือ “สร้างตารางเชื่อมที่เก็บคีย์นอกของทั้งสองฝ่ายและข้อมูลของความสัมพันธ์” ส่วนตัวลวงที่ใกล้เคียงที่สุดไม่ผ่านเพราะ คอลัมน์ซ้ำมีจำนวนไม่แน่นอนและไม่สร้างความสัมพันธ์เชิงสัมพันธ์ที่เหมาะสม