Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

One-to-Many และ Many-to-One Relationship ใน DBMS

ความสัมพันธ์ 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 |
+----------+----------+--------+