โดยปกติเมื่อคุณมีตารางที่มีคีย์หลักแบบหลายคอลัมน์เป็นผลมาจากตารางการเข้าร่วม (หลายต่อหลายคน) ที่ได้รับการยกระดับให้เป็นเอนทิตีของตัวเอง มีหลายคนที่จะโต้แย้งว่าตารางการเข้าร่วมใด ๆ ควรเป็นนิติบุคคลโดยค่าเริ่มต้น แต่นั่นคือการสนทนาสำหรับวันอื่น
ลองดูที่ความสัมพันธ์หลายข้อกับหลายข้อสมมุติ:
นักเรียน * --- * คลาส
(นักเรียนสามารถอยู่ในหลายชั้นเรียนได้นักเรียนหลายคน)
ในระหว่างสองตารางเหล่านี้จะเป็นตารางแยกที่เรียกว่า StudentClass (หรือ ClassStudent ขึ้นอยู่กับวิธีที่คุณเขียน) บางครั้งคุณต้องการติดตามสิ่งต่าง ๆ เช่นเมื่อนักเรียนอยู่ในชั้นเรียน ดังนั้นคุณจะเพิ่มลงในตาราง StudentClass เมื่อมาถึงจุดนี้ StudentClass ได้กลายเป็นเอนทิตี้ที่ไม่ซ้ำ ... และควรได้รับชื่อเพื่อรับรู้เช่นการลงทะเบียน
นักเรียน 1 --- * การลงทะเบียน * --- 1 ชั้น
(นักเรียนสามารถมีการลงทะเบียนได้จำนวนมากการลงทะเบียนแต่ละครั้งสำหรับหนึ่งชั้นเรียน (หรือไปในทางตรงกันข้ามชั้นเรียนสามารถมีการลงทะเบียนจำนวนมากได้การลงทะเบียนแต่ละครั้งสำหรับนักเรียนหนึ่งคน)
ตอนนี้คุณสามารถค้นหาสิ่งต่าง ๆ เช่นจำนวนนักเรียนที่ลงทะเบียนเรียนวิชาเคมี 101 ในปีที่แล้ว หรือนักเรียนคนใดที่ John Doe ลงทะเบียนเรียนในขณะที่เข้าเรียนที่มหาวิทยาลัย Acme สิ่งนี้เป็นไปได้โดยไม่ต้องมีคีย์หลักแยกต่างหาก แต่เมื่อคุณมีคีย์หลักสำหรับการลงทะเบียนแบบสอบถามที่ง่ายกว่าน่าจะเป็นของการลงทะเบียนเหล่านี้ (โดย id) จำนวนนักเรียนที่ได้รับคะแนนผ่านคือเท่าใด
การพิจารณาว่าเอนทิตีควรได้รับการลดปริมาณลงไปจนถึงการสอบถาม (หรือการจัดการ) ที่คุณจะทำเพื่อเอนทิตีนั้นหรือไม่ สมมติว่าคุณต้องการแนบการบ้านให้เสร็จสมบูรณ์สำหรับนักเรียนในชั้นเรียน สถานที่ตรรกะที่จะแนบเอนทิตีนี้ (การมอบหมาย) จะอยู่ในเอนทิตีการลงทะเบียน การให้การลงทะเบียนเป็นคีย์หลักของตัวเองจะทำให้คิวรีการมอบหมายนั้นง่ายขึ้น