logologo
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
logologo
ภาพรวม

แหล่งข้อมูล

การจัดการแหล่งข้อมูล
แหล่งข้อมูลหลัก

แหล่งข้อมูลภายนอก (ฐานข้อมูล)

บทนำ
MySQL ภายนอก
MariaDB ภายนอก
PostgreSQL ภายนอก
MSSQL ภายนอก
Oracle ภายนอก
เปรียบเทียบฐานข้อมูลหลักและภายนอก
แหล่งข้อมูล REST API
แหล่งข้อมูล KingbaseES

ตารางข้อมูล

ภาพรวม
ตารางทั่วไป
ตารางสืบทอด
ตารางไฟล์
ตารางแบบต้นไม้
ตารางปฏิทิน
ตารางความคิดเห็น
ตารางนิพจน์
ตาราง SQL
วิวฐานข้อมูล

ฟิลด์ตารางข้อมูล

ภาพรวม
การตรวจสอบฟิลด์

ประเภทพื้นฐาน

ข้อความบรรทัดเดียว
ข้อความหลายบรรทัด
หมายเลขโทรศัพท์
อีเมล
URL
จำนวนเต็ม
ตัวเลข
เปอร์เซ็นต์
รหัสผ่าน
สี
ไอคอน

ประเภทการเลือก

บูลีน
ดรอปดาวน์ (เลือกเดี่ยว)
ดรอปดาวน์ (เลือกหลายรายการ)
ปุ่มตัวเลือก
ช่องทำเครื่องหมาย

มัลติมีเดีย

Markdown
Markdown(Vditor)
Rich Text
ไฟล์แนบ (ความสัมพันธ์)
ไฟล์แนบ (URL)

วันที่และเวลา

ภาพรวม
วันที่และเวลา (มีโซนเวลา)
วันที่และเวลา (ไม่มีโซนเวลา)
Unix Timestamp
วันที่ (ไม่มีเวลา)
เวลา

รูปทรงเรขาคณิต

จุด
เส้น
วงกลม
รูปหลายเหลี่ยม

ประเภทขั้นสูง

UUID
Nano ID
การเรียงลำดับ
สูตรคำนวณ
รหัสอัตโนมัติ
JSON
ตัวเลือกตารางข้อมูล
การเข้ารหัส

ข้อมูลระบบ

วันที่สร้าง
วันที่แก้ไขล่าสุด
สร้างโดย
แก้ไขล่าสุดโดย
เนมสเปซ
Table OID

ประเภทความสัมพันธ์

ภาพรวม
หนึ่งต่อหนึ่ง
หนึ่งต่อหลาย
หลายต่อหนึ่ง
หลายต่อหลาย
หลายต่อหลาย (อาร์เรย์)

การพัฒนา

ภาพรวม
Next Pageภาพรวม
TIP

เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ

#ความสัมพันธ์แบบหลายต่อหลาย (Many-to-Many)

ในระบบลงทะเบียนเรียน จะมีเอนทิตีหลักอยู่สองอย่างคือ นักเรียน/นักศึกษา และวิชาเรียนครับ/ค่ะ นักเรียน/นักศึกษาหนึ่งคนสามารถลงทะเบียนเรียนได้หลายวิชา และวิชาเรียนหนึ่งวิชาก็มีนักเรียน/นักศึกษาหลายคนลงทะเบียนได้เช่นกัน นี่คือตัวอย่างของความสัมพันธ์แบบหลายต่อหลาย (Many-to-Many) ครับ/ค่ะ

ในฐานข้อมูลเชิงสัมพันธ์ (Relational Database) เพื่อแสดงความสัมพันธ์แบบหลายต่อหลายระหว่างนักเรียน/นักศึกษาและวิชาเรียน เรามักจะใช้คอลเลกชันตัวกลาง (Intermediary Collection) เช่น คอลเลกชันการลงทะเบียนเรียน คอลเลกชันนี้จะบันทึกว่านักเรียน/นักศึกษาแต่ละคนเลือกลงทะเบียนวิชาใดบ้าง และวิชาแต่ละวิชามีนักเรียน/นักศึกษาคนใดลงทะเบียนบ้าง การออกแบบเช่นนี้ช่วยให้เราสามารถแสดงความสัมพันธ์แบบหลายต่อหลายระหว่างนักเรียน/นักศึกษาและวิชาเรียนได้อย่างมีประสิทธิภาพครับ/ค่ะ

แผนภาพ ER (ER Diagram) มีดังนี้ครับ/ค่ะ

alt text

การตั้งค่าฟิลด์ (Field Configuration):

alt text

#คำอธิบายพารามิเตอร์

#Source Collection (คอลเลกชันต้นทาง)

คอลเลกชันต้นทาง คือคอลเลกชันที่ฟิลด์ปัจจุบันนี้อยู่ครับ/ค่ะ

#Target Collection (คอลเลกชันปลายทาง)

คอลเลกชันปลายทาง คือคอลเลกชันที่จะเชื่อมโยงด้วยครับ/ค่ะ

#Through Collection (คอลเลกชันตัวกลาง)

คอลเลกชันตัวกลาง จะใช้เมื่อมีความสัมพันธ์แบบหลายต่อหลายระหว่างสองเอนทิตีครับ/ค่ะ โดยคอลเลกชันตัวกลางจะมีคีย์นอก (Foreign Key) สองตัวที่ใช้เพื่อรักษาการเชื่อมโยงระหว่างเอนทิตีทั้งสองไว้

#Source Key (คีย์ต้นทาง)

ฟิลด์ในคอลเลกชันต้นทางที่ถูกอ้างอิงโดยคีย์นอก (Foreign Key) ครับ/ค่ะ ฟิลด์นี้จะต้องไม่ซ้ำกัน (Unique)

#Foreign Key 1 (คีย์นอก 1)

ฟิลด์ในคอลเลกชันตัวกลางที่ใช้สร้างการเชื่อมโยงกับคอลเลกชันต้นทางครับ/ค่ะ

#Foreign Key 2 (คีย์นอก 2)

ฟิลด์ในคอลเลกชันตัวกลางที่ใช้สร้างการเชื่อมโยงกับคอลเลกชันปลายทางครับ/ค่ะ

#Target Key (คีย์ปลายทาง)

ฟิลด์ในคอลเลกชันปลายทางที่ถูกอ้างอิงโดยคีย์นอก (Foreign Key) ครับ/ค่ะ ฟิลด์นี้จะต้องไม่ซ้ำกัน (Unique)

#ON DELETE

ON DELETE คือกฎที่ใช้กำหนดการดำเนินการกับคีย์นอก (Foreign Key) ในคอลเลกชันลูกที่เกี่ยวข้อง เมื่อมีการลบเรคคอร์ดในคอลเลกชันแม่ครับ/ค่ะ ซึ่งเป็นตัวเลือกหนึ่งที่ใช้ในการกำหนดข้อจำกัดคีย์นอก (Foreign Key Constraint) โดยตัวเลือก ON DELETE ที่พบบ่อยได้แก่:

  • CASCADE: เมื่อมีการลบเรคคอร์ดในคอลเลกชันแม่ ระบบจะลบเรคคอร์ดที่เกี่ยวข้องทั้งหมดในคอลเลกชันลูกโดยอัตโนมัติครับ/ค่ะ
  • SET NULL: เมื่อมีการลบเรคคอร์ดในคอลเลกชันแม่ ค่าคีย์นอกในเรคคอร์ดที่เกี่ยวข้องในคอลเลกชันลูกจะถูกตั้งค่าเป็น NULL ครับ/ค่ะ
  • RESTRICT: เป็นตัวเลือกเริ่มต้นครับ/ค่ะ หากพยายามลบเรคคอร์ดในคอลเลกชันแม่ แต่มีเรคคอร์ดที่เกี่ยวข้องอยู่ในคอลเลกชันลูก ระบบจะปฏิเสธการลบเรคคอร์ดในคอลเลกชันแม่
  • NO ACTION: คล้ายกับ RESTRICT ครับ/ค่ะ หากมีเรคคอร์ดที่เกี่ยวข้องอยู่ในคอลเลกชันลูก ระบบจะปฏิเสธการลบเรคคอร์ดในคอลเลกชันแม่