database แบบ relational จะมีการเก็บข้อมูลที่มีโครงสร้างชัดเจน มีการระบุ field และความเชื่อมโยงกันระหว่าง
table ส่วนประกอบหลักๆมี table และ field ตัวอย่างเช่น table ชื่อ Writer ประกอบด้วย field name, books เป็นตัน
ความหมายคือของมูลของ Writer (นักเขียน) ประกอบด้วย name (ชื่อ) และ books (หนังสือที่เขียน) ในแต่ละ field
ก็มีชนิดของข้อมูลที่เก็บอาจจะเป็น ตัวเลข ข้อความ ค่าจริงเท็จหรือ binary (ใช้เก็บรูปภาพ) ก็เป็นได้ ต่อไปนี้จะ
เป็นความสัมพันธ์ของฐานข้อมูลว่ามีแบบไหนบ้าง
แบบ one to one
เป็นความสัมพันธ์แบบ 1 ต่อ 1 ตัวอย่างเช่น ข้อมูลรถยนต์โดยรถยนต์ถูกผลิตโดยค่ายรถยนต์แห่งหนึ่ง
ความสัมพันธ์คือ รถยนต์แต่ละคันมีอยู่ในค่ายรถยนต์ 1 ค่าย
จากรูปด้านบนเป็นตัวอย่างความสัมพันธ์ของ table Car และ table Camper โดยมีความสัมพันธ์กัน
แบบ 1 ต่อ 1 นั่นคือใน table Car จะมี field ชื่อ camper_id ไว้สำหรับเก็บ id ของข้อมูลใน table Camper
หลักการคือความสัมพันธ์ระหว่าง table จะถูกเชื่อมด้วย id และ id ของแต่ละข้อมูลจะไม่ซ้ำกันใน table เดียวกัน
แบบ one to many
เป็นความสัมพันธ์ในรูปแบบ 1 สิ่งประกอบด้วยหลายสิ่ง เช่น ในบ้านมีหลายห้อง คนมีรถหลายคัน นักเขียน
ได้เขียนหลังสือหลายเล่ม
จากรูปด้านยนเป็นตัวอย่างความสัมพันธ์ของ table writer ที่เป็นนักเขียนแล้วเป็นผู้เขียนหนังสือหลายเล่ม
จะเห็นได้ว่าใน table book จะมี field writer_id ไว้สำหรับเก็บ id ของ writer จากข้อมูลด้านบนจะสรุปได้ว่า
writer ที่ชื่อ John เขียนหนังสือ 2 เล่มได้แก่ the time และ the Great Wall สังเกตได้จาก id 0 ของ John
อยู่ใน field writer_id ของหนังสือ 2 เล่มนี้
แบบ many to many
เป็นความสัมพันธ์แบบกลุ่มต่อกลุ่ม เป็นเหมือนกับสิ่งหนึ่งเป็นเจ้าของหลายอย่างแล่วสิ่งนั้นก็มีเจ้าของ
ได้หลายคน อาจจะดูสับสนของยกตัวอย่าง เช่น การลงทะเบียนเรียนในแต่ละวิชา นักเรียนหนึ่งคนสามารถ
ลงเรียนได้หลายวิชา ในขณะเดียววิชาเรียนก็มีนักเรียนมาลงทะเบียนเรียนได้หลายคน เป็นต้น
จากตัวอย่างข้างบนเป็น database การลงทะเบียนเรียน ประกอบด้วย 3 table ได้แก่ Student Register
และ Subject เราจะสร้างความสัมพันธ์แบบนักเรียนลงทะเบียนเรียนได้หลายวิชาและแต่ละวิชามีนักเรียนลง
ทะเบียนได้หลายคนโดยการมีตารางตรงกลางที่ชื่อว่า Register ที่จะเก็บ filed student_id และ subject_id
จากตัวอย่าง John ลงเรียน 2 วิชาคือ Math และ Sci เวลาเก็บข้อมูลให้นำ id ของ John มาผูกกับ id ของ
วิชาที่เรียนใน table Register จะเห็นได้ว่า student 0 เก็บข้อมูลกับ subject_id 0 และ 2 ซึ่งเป็น id ของวิชา
Math กับ Sci
เคล็ดลับการออกแบบและเข้าใจ database ที่สำคัญคือการมองให้ออกว่าสิ่งไหนประกอบ
ด้วยอะไรบ้าง และในแต่ละสิ่งสามารถอยู่ในอีกสิ่งหนึ่งได้หรือไม่
ความคิดเห็น
แสดงความคิดเห็น