ความสัมพันธ์ One-to-Many (1:N) และ Many-to-One (N:1) เป็นมุมมองต่างกันของความสัมพันธ์เดียวกัน
One-to-Many Relationship (1:N)
หนึ่งอินสแตนซ์ของเอนทิตี้ P สัมพันธ์กับหลายอินสแตนซ์ของเอนทิตี้ Q
ตัวอย่าง: นักเรียน (Student) คนหนึ่ง ทำโปรเจกต์ (Project) ได้หลายโปรเจกต์
Student 1 → Project A, Project B (1 Student : N Projects)
Many-to-One Relationship (N:1)
หลายอินสแตนซ์ของเอนทิตี้ P สัมพันธ์กับหนึ่งอินสแตนซ์ของเอนทิตี้ Q
ตัวอย่าง: โปรเจกต์ (Project) หนึ่ง มีหลายนักเรียน (Student) ทำร่วมกัน (ทีม)
Student A, B, C, D, E → Project X (N Students : 1 Project)
สรุปความสัมพันธ์
- 1:N และ N:1 เป็นมุมมองตรงข้ามของความสัมพันธ์เดียวกัน
- ด้าน "One" จะมี Primary Key
- ด้าน "Many" จะมี Foreign Key อ้างอิงไปยัง Primary Key ของด้าน One
- ในตาราง: FK อยู่ที่ตารางด้าน Many
ตัวอย่างตาราง:
Student (One side) +--------+----------+ | Stu_ID | Name | +--------+----------+ | S01 | Alice | Project (Many side - FK ชี้ไป Student) +----------+----------+--------+ | Proj_ID | Stu_ID | Title | +----------+----------+--------+ | P01 | S01 | Web | | P02 | S01 | Mobile | +----------+----------+--------+