Relationship
เป็นหัวใจสำคัญในเรื่องการออกแบบฐานข้อมูลซึ่งความสัมพันธ์จะมีด้วยกันทั้งหมด 3 ลักษณะคือ- ความสัมพันธ์แบบ One - to - One (1:1)
ความสัมพันธ์ที่เรคอร์ดใดๆใน Table หนึ่ง สามารถจับคู่กับเรคอร์ดในอีก Table หนึ่ง ได้เพียงเรคอร์ดเดียวเท่านั้น (จับคู่กันแบบตัวต่อตัว) ความสัมพันธ์ลักษณะนี้จะพบเห็นได้ค่อนข้างน้อย เช่น กรณีที่จำนวนฟิลด์ใน Table มีมากเกินไป จนทำให้ Table มีขนาดใหญ่บำรุ่งรักษายาก จึงต้องแยกข้อมูลบางส่วนออกมาเก็บไว้อีก Table หนึ่ง แล้วสร้างความสัมพันธ์ระหว่าง Table ทั้งสองด้วยฟิลด์ที่เป็นฟีลด์ร่วมในต้วอย่างนี้จะแยกข้อมูลบางส่วนใน Table พนักงานที่เป็นข้อมูลส่วนส่วนตัวออกมาไว้อีก Table และใช้ฟิลด์รหัสพนักงานเป็นตัวเชื่อม Table ทั้งสอง
- ความสัมพันธ์แบบ One - to - Many (1:N)
เป็นความสัมพันธ์ที่เรคร์ดใดๆใน Table หนึ่ง สามารถจับคู่กับเรคร์ดในอีก Table หนึ่งได้หลายๆเรคร์ดพร้อมกันเช่นความสัมพันธ์ระหว่าง Table ลูกค้ากับ Table การสั่งซื้อ ลูกค้าหนึ่งคนสามารถสั่งซื้อสินค้าได้มากกว่า 1 ครั้ง (หลายใบสั่งซื้อ) โดย แต่ละใบสั่งซื้อจะมาจากลูกค้าเพียงรายเดียวเท่านั้น หรือตัวอย่างตามรูป
- ความสัมพันธ์แบบ Many - to Many (M:N)
เป็นความสัมพันธ์ที่หลายๆเรคร์ดใน Table หนึ่งสามารถจับคู่กับเรคร์ดในอีก Table หนึ่งได้หลายๆเรคร์ดพร้อมกันเช่นตวามสัมพันธ์ระหว่าง Table ลูกค้ากับ Table สินค้า ลูกค้าหนึ่งคนสามารถซื้อสินค้าได้หลายชนิด ในขณะที่สินค้าแต่ละชนิดก็ถูกซื้อโดยลูกค้าหลายๆคน ถ้านำ Table ทั้งสองมาเชื่อมความสัมพันธ์กันตรงๆจะทำไม่ได้ เพราะมีฟีลด์ร่วมของทั้ง 2 Tableต้องใช้ Table อื่นมาเป็นตัวกลางในการเชื่อมโยง ซึ่งในที่นี้เราจะใช้ Table การสั่งซื้อมาช่วยสร้างความสัมพันธ์แบบ Many - to -Many
จะสรุปได้ว่าความสัมพันธ์ความสัมพันธ์ One to One (1:1) ความสัมพันธ์ที่เรคอร์ดใดๆใน Table หนึ่ง สามารถจับคู่กับเรคอร์ดในอีก Table หนึ่ง ได้เพียงเรคอร์ดเดียวเท่านั้น ความสัมพันธ์ความสัมพันธ์ One to Many(1:M) เป็นความสัมพันธ์ที่เรคร์ดใดๆใน Table หนึ่ง สามารถจับคู่กับเรคร์ดในอีก Table หนึ่งได้หลายๆเรคร์ดพร้อมกัน ความสัมพันธ์ความสัมพันธ์ Many to Many (N:N)เป็นความสัมพันธ์ที่หลายๆเรคร์ดใน Table หนึ่งสามารถจับคู่กับเรคร์ดในอีก Table หนึ่งได้หลายๆเรคร์ดพร้อมกัน
เป็นเนื้อหาที่ดี สำหรับบางคนที่อาจจะลืมไปแล้ว สามารถเอาไปใช้ในการเขียน er-diagram ที่ต้องกำหนดความสัมพันธ์
ตอบลบลำดับแรกเราควรไปกำหนดว่าใน table เรา ควรจะมี ฟิล อะไรบ้าง และตารางไหนมีความสัมพันธ์กับตารางไหน อันนี้เป็นการอธิบายถึงความพันธ์ระหว่างตารางว่าควรจะเป็นในรูปแบบไหน
เราจึงควรรู้ในเนื้อหาที่เราจะทำด้วยว่าต้องมีข้อมูลอะไรบ้าง
คอมเม้นต่อจากเพื่อนข้างบนครับ โดยตารางและตารางจะมาจาก entity ซึ่งจะมาเป็นชื่อของตาราง และ attibute คือฟิลล์ในตาราง ซึ่งทั้งหมดมาจาก er ไดอะแกรม (ความรู้เก่า เพื่อนๆคงรู้อยุ่แล้ว ฮ่าๆๆ)
ตอบลบ