Many-to-Many (N:N) Relationship คือความสัมพันธ์ที่หลายอินสแตนซ์ของเอนทิตี้หนึ่ง สัมพันธ์กับหลายอินสแตนซ์ของอีกเอนทิตี้หนึ่ง (ทั้งคู่มี "หลาย")
การแทนความสัมพันธ์
ใน ER Diagram ใช้เพชรคู่หรือเส้นเชื่อมพร้อมเครื่องหมาย N:M
ตัวอย่าง: Author และ Book
- นักเขียน (Author) คนหนึ่ง เขียนหนังสือ (Book) ได้หลายเล่ม
- หนังสือ (Book) เล่มหนึ่ง อาจมีนักเขียน (Author) หลายคน (ร่วมเขียน)
สถานการณ์:
- หนังสือเล่มหนึ่งมี 2 นักเขียน
- นักเขียนคนหนึ่งเขียนหนังสือไปแล้ว 6 เล่ม
การนำไปสู่ตาราง (Implementation)
ใน Relational Database ต้องสร้าง Junction Table (Associative Table) เช่น Book_Author ที่มี Foreign Key ชี้ไปทั้ง 2 ตาราง
Book_Author +---------+----------+ | BookID | AuthorID | +---------+----------+ | 1 | 1 | | 1 | 2 | -- หนังสือเล่มที่ 1 มี 2 นักเขียน | 2 | 1 | | 3 | 1 | | ... | ... | -- นักเขียนคนที่ 1 เขียน 6 เล่ม +---------+----------+
สรุป: Many-to-Many ไม่สามารถทำได้โดยตรงใน 2 ตาราง ต้องใช้ตารางกลาง (Junction Table) แยกเป็น 2 ความสัมพันธ์ One-to-Many