Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การลดรูปแผนภาพ ER Diagram ตาม Cardinality ต่างๆ

แผนภาพ ER Diagram (Entity-Relationship Diagram) แสดงเอนทิตี (Entity) คุณลักษณะ (Attribute) และความสัมพันธ์ (Relationship) ระหว่างตาราง การลดรูป ER Diagram หมายถึงการลดจำนวนตารางให้น้อยที่สุดโดยยังคงความหมายและข้อมูลครบถ้วน ตามประเภท Cardinality (อัตราสัมพันธ์)

1. One-to-One (หนึ่งต่อหนึ่ง)

การลดรูปแผนภาพ ER Diagram ตาม Cardinality ต่างๆ

  • เอนทิตี Employee: คีย์หลัก emp_id, คุณลักษณะ emp_name
  • เอนทิตี Company: คีย์หลัก cmp_id, คุณลักษณะ cmp_name
  • เอนทิตี Work (ความสัมพันธ์): คีย์หลักอาจเป็น emp_id หรือ cmp_id
  • ข้อสรุป: ไม่สามารถรวม 3 ตารางเป็น 1 ตารางได้ สามารถรวม Work เข้ากับ Employee หรือ Company ได้ เพียงอย่างใดอย่างหนึ่ง ต้องใช้ตารางอย่างน้อย 2 ตาราง

2. One-to-Many (หนึ่งต่อหลาย)

การลดรูปแผนภาพ ER Diagram ตาม Cardinality ต่างๆ

  • เอนทิตี Employee: emp_id (PK), emp_name
  • เอนทิตี Company: cmp_id (PK), cmp_name
  • พนักงาน 1 คน ทำงานบริษัทเดียว แต่บริษัท 1 แห่ง มีพนักงานได้หลายคน
  • ข้อสรุป: ไม่สามารถทำ cmp_id เป็น PK ของ Employee ได้ (เพราะซ้ำ) แต่สามารถรวม Employee และ Work table ได้ ต้องใช้ตารางอย่างน้อย 2 ตาราง

3. Many-to-Many (หลายต่อหลาย)

การลดรูปแผนภาพ ER Diagram ตาม Cardinality ต่างๆ

  • เอนทิตี Employee: emp_id (PK), emp_name
  • เอนทิตี Company: cmp_id (PK), cmp_name
  • พนักงาน 1 คน ทำงานหลายบริษัท และบริษัท 1 แห่ง มีพนักงานหลายคน
  • ข้อสรุป: ไม่สามารถรวม Work table เข้ากับ Employee หรือ Company ได้ เพราะจะทำให้ข้อมูลซ้ำ (Redundant) ต้องใช้ตารางอย่างน้อย 3 ตาราง (Employee, Company, Work/Junction table)

สรุป: การลดรูป ER Diagram ขึ้นอยู่กับ Cardinality: One-to-One และ One-to-Many ต้องการ ≥ 2 ตาราง, Many-to-Many ต้องการ ≥ 3 ตาราง