Company insights

ความหมายของ One-to-One, One-to-Many และ Many-to-Many ในฐานข้อมูล


ในการออกแบบฐานข้อมูลเชิงสัมพันธ์ (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
username

Table 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_name

Table 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_name

Table 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
หลายข้อมูล เชื่อมกับหลายข้อมูล


การเข้าใจรูปแบบความสัมพันธ์ของตาราง
จะช่วยให้สามารถออกแบบฐานข้อมูลได้อย่างถูกต้อง
และทำให้ระบบสามารถจัดการข้อมูลได้อย่างมีประสิทธิภาพมากขึ้น