ในระบบฐานข้อมูลโรงงานผลิตชิ้นส่วน ชิ้นส่วนหนึ่งสามารถประกอบด้วยชิ้นส่วนย่อยหลายชิ้น และชิ้นส่วนย่อยชิ้นเดียวกันสามารถเป็นองค์ประกอบของชิ้นส่วนหลายชิ้นได้ ควรใช้โครงสร้างความสัมพันธ์ใดในการออกแบบฐานข้อมูล
กตารางเดียวชื่อ PART พร้อม Recursive Relationship แบบ Many-to-Many โดยสร้างตารางเชื่อม PART_COMPONENT ที่มี parent_part_id และ child_part_id
ขตาราง PART และตาราง SUB_PART แยกกัน โดยใช้ความสัมพันธ์แบบ One-to-Many ระหว่างสองตาราง เพื่อให้ชิ้นส่วนหลักอ้างอิงชิ้นส่วนย่อยได้
คตาราง PART ที่มีคอลัมน์ parent_id เก็บลำดับชั้นแบบ Tree Structure รองรับได้เฉพาะความสัมพันธ์แบบ One-to-Many ระหว่างชิ้นส่วนหลักกับชิ้นส่วนย่อย
งตาราง PART และตาราง ASSEMBLY แยกกัน โดยใช้ Foreign Key จาก ASSEMBLY อ้างอิง PART แบบ One-to-One เพื่อระบุการประกอบชิ้นส่วนแต่ละคู่
เฉลยอธิบาย
ความสัมพันธ์ที่ชิ้นส่วนหนึ่งมีชิ้นส่วนย่อยได้หลายชิ้น และชิ้นส่วนย่อยชิ้นเดียวเป็นส่วนประกอบของชิ้นส่วนหลายชิ้นได้ คือ Many-to-Many Recursive Relationship วิธีที่ถูกต้องคือใช้ตารางเดียว PART และสร้างตารางเชื่อม PART_COMPONENT ที่มี parent_part_id และ child_part_id ทั้งคู่อ้างอิง Primary Key ของตาราง PART ซึ่งรองรับโครงสร้างดังกล่าวได้อย่างสมบูรณ์