วันอังคารที่ 24 กรกฎาคม พ.ศ. 2555

เรื่องของ Relationship

Relationship  
เป็นหัวใจสำคัญในเรื่องการออกแบบฐานข้อมูลซึ่งความสัมพันธ์จะมีด้วยกันทั้งหมด 3 ลักษณะคือ

  1. ความสัมพันธ์แบบ One - to - One (1:1)
           ความสัมพันธ์ที่เรคอร์ดใดๆใน Table หนึ่ง สามารถจับคู่กับเรคอร์ดในอีก Table หนึ่ง ได้เพียงเรคอร์ดเดียวเท่านั้น (จับคู่กันแบบตัวต่อตัว) ความสัมพันธ์ลักษณะนี้จะพบเห็นได้ค่อนข้างน้อย เช่น กรณีที่จำนวนฟิลด์ใน Table มีมากเกินไป จนทำให้ Table มีขนาดใหญ่บำรุ่งรักษายาก จึงต้องแยกข้อมูลบางส่วนออกมาเก็บไว้อีก Table หนึ่ง แล้วสร้างความสัมพันธ์ระหว่าง Table ทั้งสองด้วยฟิลด์ที่เป็นฟีลด์ร่วมในต้วอย่างนี้จะแยกข้อมูลบางส่วนใน Table พนักงานที่เป็นข้อมูลส่วนส่วนตัวออกมาไว้อีก Table และใช้ฟิลด์รหัสพนักงานเป็นตัวเชื่อม Table ทั้งสอง
  1. ความสัมพันธ์แบบ One - to - Many (1:N)  
          เป็นความสัมพันธ์ที่เรคร์ดใดๆใน Table หนึ่ง สามารถจับคู่กับเรคร์ดในอีก Table หนึ่งได้หลายๆเรคร์ดพร้อมกันเช่นความสัมพันธ์ระหว่าง Table ลูกค้ากับ Table การสั่งซื้อ ลูกค้าหนึ่งคนสามารถสั่งซื้อสินค้าได้มากกว่า 1 ครั้ง (หลายใบสั่งซื้อ) โดย แต่ละใบสั่งซื้อจะมาจากลูกค้าเพียงรายเดียวเท่านั้น หรือตัวอย่างตามรูป
  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 หนึ่งได้หลายๆเรคร์ดพร้อมกัน



2 ความคิดเห็น:

  1. เป็นเนื้อหาที่ดี สำหรับบางคนที่อาจจะลืมไปแล้ว สามารถเอาไปใช้ในการเขียน er-diagram ที่ต้องกำหนดความสัมพันธ์

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

    เราจึงควรรู้ในเนื้อหาที่เราจะทำด้วยว่าต้องมีข้อมูลอะไรบ้าง

    ตอบลบ
  2. คอมเม้นต่อจากเพื่อนข้างบนครับ โดยตารางและตารางจะมาจาก entity ซึ่งจะมาเป็นชื่อของตาราง และ attibute คือฟิลล์ในตาราง ซึ่งทั้งหมดมาจาก er ไดอะแกรม (ความรู้เก่า เพื่อนๆคงรู้อยุ่แล้ว ฮ่าๆๆ)

    ตอบลบ

หมายเหตุ: มีเพียงสมาชิกของบล็อกนี้เท่านั้นที่สามารถแสดงความคิดเห็น