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

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

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