ในการออกแบบฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
ตารางต่าง ๆ สามารถเชื่อมโยงกันได้ผ่านความสัมพันธ์ (Relationship)
ซึ่งช่วยให้ข้อมูลถูกจัดเก็บอย่างเป็นระบบและลดความซ้ำซ้อนของข้อมูล
ความสัมพันธ์หลักของตารางในฐานข้อมูลมีอยู่ 3 ประเภท คือ
One-to-One, One-to-Many และ Many-to-Many
1. One-to-One (หนึ่งต่อหนึ่ง)
One-to-One หมายถึง ความสัมพันธ์ที่ข้อมูลในตารางหนึ่ง
สามารถเชื่อมโยงกับข้อมูลในอีกตารางหนึ่งได้เพียงหนึ่งรายการเท่านั้น
ตัวอย่างเช่น
- ผู้ใช้ 1 คน มีโปรไฟล์ได้เพียง 1 โปรไฟล์
- บัตรประชาชน 1 ใบ เป็นของบุคคลเพียง 1 คน
ตัวอย่างโครงสร้างตาราง
Table users
-----------
user_id
usernameTable user_profile
-----------
profile_id
user_id
address
ในกรณีนี้ user_profile จะเชื่อมกับ users ได้เพียง 1 ต่อ 1
2. One-to-Many (หนึ่งต่อหลาย)
One-to-Many หมายถึง ข้อมูลในตารางหนึ่ง
สามารถเชื่อมโยงกับข้อมูลในอีกตารางหนึ่งได้หลายรายการ
แต่ข้อมูลในตารางที่สองจะอ้างอิงกลับมาได้เพียงรายการเดียว
ตัวอย่างเช่น
- ลูกค้า 1 คน สามารถมีคำสั่งซื้อหลายรายการ
- หมวดหมู่สินค้า 1 หมวด มีสินค้าได้หลายรายการ
ตัวอย่างโครงสร้างตาราง
Table customers
---------------
customer_id
customer_nameTable orders
------------
order_id
customer_id
order_date
ตาราง orders จะมี customer_id เป็น Foreign Key
เพื่อเชื่อมกับ customers
3. Many-to-Many (หลายต่อหลาย)
Many-to-Many หมายถึง ข้อมูลในตารางหนึ่ง
สามารถเชื่อมกับข้อมูลในอีกตารางหนึ่งได้หลายรายการ
และข้อมูลในตารางที่สองก็สามารถเชื่อมกลับมาได้หลายรายการเช่นกัน
ตัวอย่างเช่น
- นักเรียนหลายคนสามารถเรียนได้หลายวิชา
- สินค้า 1 ชิ้น สามารถอยู่ได้หลายหมวดหมู่
ความสัมพันธ์แบบนี้จะต้องมี ตารางกลาง (Join Table)
เพื่อเก็บความสัมพันธ์ของข้อมูล
ตัวอย่างโครงสร้างตาราง
Table students
--------------
student_id
student_nameTable courses
-------------
course_id
course_name
Table student_courses
---------------------
student_id
course_id
ตาราง student_courses จะทำหน้าที่เก็บความสัมพันธ์
ระหว่าง students และ courses
สรุป
One-to-One
1 ข้อมูล เชื่อมกับ 1 ข้อมูลOne-to-Many
1 ข้อมูล เชื่อมกับหลายข้อมูล
Many-to-Many
หลายข้อมูล เชื่อมกับหลายข้อมูล
การเข้าใจรูปแบบความสัมพันธ์ของตาราง
จะช่วยให้สามารถออกแบบฐานข้อมูลได้อย่างถูกต้อง
และทำให้ระบบสามารถจัดการข้อมูลได้อย่างมีประสิทธิภาพมากขึ้น
