คำชี้แจงปัญหา
แผนภาพ ER เป็นภาพแสดงตารางและความสัมพันธ์ระหว่างกัน แผนภาพ ER เราสามารถลดจำนวนฐานข้อมูลได้
หนึ่งต่อหนึ่งคาร์ดินาลลิตี้
ให้เราพิจารณาแผนภาพด้านล่างด้วยการนับหนึ่งต่อหนึ่ง -
ด้านบนไดอะแกรม ER แสดงถึง 3 หน่วยงาน -
- นิติบุคคลพนักงานมี 2 คุณลักษณะคือ emp_name emp_id คือคีย์หลัก
- นิติบุคคลของบริษัทมี 2 คุณลักษณะคือ cmp_name cmp_id เป็นคีย์หลัก
- คีย์หลักของเอนทิตีงานสามารถเป็น emp_id หรือ cmp_id
- เราไม่สามารถรวม 3 ตารางเป็นตารางเดียวได้ ไม่ว่าจะรวมงานเข้าเป็นพนักงานหรือบริษัท ต้องมีอย่างน้อย 2 ตารางในสถานการณ์หนึ่งต่อหนึ่งคาร์ดินาลลิตี้
หนึ่งถึงหลายคาร์ดินาลลิตี้
ให้เราพิจารณาไดอะแกรมด้านล่างด้วยการนับหนึ่งถึงหลาย -
ในแผนภาพ ER พนักงานสามารถทำงานให้กับบริษัทเดียวได้ แต่บริษัทสามารถมีพนักงานดังกล่าวได้หลายคน ด้านบนไดอะแกรม ER แสดงถึง 3 หน่วยงาน -
- นิติบุคคลพนักงานมี 2 คุณลักษณะคือ − emp_id และ emp_name emp_id คือคีย์หลัก
- นิติบุคคลของบริษัทมี 2 คุณลักษณะคือ − emp_id และ cmp_name cmp_id เป็นคีย์หลัก
- เราไม่สามารถทำให้ cmp_id เป็นคีย์หลักได้ เนื่องจากพนักงานหลายคนสามารถทำงานให้กับ cmp_id เดียวกันได้ อย่างไรก็ตาม เราสามารถรวม Employee และ Work table เข้าด้วยกันได้ ดังนั้น จึงจำเป็นต้องมีตารางอย่างน้อย 2 ตารางในหนึ่งถึงหลายสถานการณ์
หลายถึงหลายคาร์ดินาลลิตี้
ให้เราพิจารณาไดอะแกรมด้านล่างด้วยการนับหนึ่งถึงหลาย -
ในแผนภาพ ER นี้ พนักงานสามารถทำงานในบริษัทต่างๆ ได้หลายบริษัท บริษัทสามารถมีพนักงานดังกล่าวได้หลายคน ด้านบนไดอะแกรม ER แสดงถึง 3 หน่วยงาน -
- นิติบุคคลพนักงานมี 2 คุณลักษณะคือ − emp_id และ emp_name emp_id คือคีย์หลัก
- นิติบุคคลของบริษัทมี 2 คุณลักษณะคือ − emp_id และ cmp_name cmp_id เป็นคีย์หลัก
- ไม่เหมือนกับตัวอย่างก่อนหน้านี้ ไม่สามารถรวมตารางงานกับพนักงานหรือบริษัทได้ หากเราพยายามรวมมันเข้าด้วยกัน มันจะสร้างข้อมูลที่ซ้ำซ้อน ดังนั้นจำเป็นต้องมีตารางอย่างน้อย 2 ตารางในสถานการณ์การนับจำนวนหลายรายการ