สถานการณ์ทั่วไปที่มีหลายเส้นทางจะเป็นเช่นนี้: ตารางต้นแบบที่มีรายละเอียดสองรายการสมมติว่า "Master" และ "Detail1" และ "Detail2" รายละเอียดทั้งสองถูกลบทั้งหมด จนถึงไม่มีปัญหา แต่จะเกิดอะไรขึ้นถ้ารายละเอียดทั้งสองมีความสัมพันธ์แบบหนึ่งต่อหลายคนกับตารางอื่น ๆ (พูดว่า "SomeOtherTable") SomeOtherTable มี Detail1ID-column และ Detail2ID-column
Master { ID, masterfields }
Detail1 { ID, MasterID, detail1fields }
Detail2 { ID, MasterID, detail2fields }
SomeOtherTable {ID, Detail1ID, Detail2ID, someothertablefields }
กล่าวอีกนัยหนึ่ง: บางระเบียนใน SomeOtherTable เชื่อมโยงกับ Detail1-records และบางระเบียนใน SomeOtherTable เชื่อมโยงกับ Detail2 records แม้ว่าจะรับประกันได้ว่า SomeOtherTable-records ไม่เคยอยู่ในรายละเอียดทั้งคู่ แต่ตอนนี้มันเป็นไปไม่ได้ที่จะทำบันทึกของ SomeOhterTable เพื่อลบรายละเอียดทั้งสองเนื่องจากมีเส้นทางแบบเรียงซ้อนจาก Master ไปยัง SomeOtherTable (หนึ่งผ่าน Detail1 และ One ผ่าน Detail2) ตอนนี้คุณอาจเข้าใจสิ่งนี้แล้ว นี่คือทางออกที่เป็นไปได้:
Master { ID, masterfields }
DetailMain { ID, MasterID }
Detail1 { DetailMainID, detail1fields }
Detail2 { DetailMainID, detail2fields }
SomeOtherTable {ID, DetailMainID, someothertablefields }
ฟิลด์ ID ทั้งหมดคือคีย์ฟิลด์และการเพิ่มอัตโนมัติ crux อยู่ในเขตข้อมูล DetailMainId ของตารางรายละเอียด ฟิลด์เหล่านี้มีทั้งข้อ จำกัด เรื่องกุญแจและตัวอ้างอิง ตอนนี้คุณสามารถเรียงซ้อนการลบทุกอย่างได้โดยการลบข้อมูลหลักเท่านั้น ข้อเสียคือสำหรับแต่ละ detail1-record และสำหรับแต่ละ detail2 นั้นจะต้องมี DetailMain-record (ซึ่งถูกสร้างขึ้นจริงก่อนเพื่อให้ได้ ID ที่ถูกต้องและไม่ซ้ำกัน)