บริษัทแห่งหนึ่งต้องการออกแบบฐานข้อมูลสำหรับจัดการข้อมูลพนักงาน ซึ่งมีข้อมูลเช่น รหัสพนักงาน ชื่อ นามสกุล อีเมล ตำแหน่ง และแผนก จากสถานการณ์นี้ ควรจัดเรียงข้อมูลในรูปแบบใด?
กเก็บชื่อแผนกซ้ำในทุกแถวพนักงานและแก้ไขชื่อแผนกทีละคนเมื่อมีการเปลี่ยนแปลง
ขรวมพนักงานทุกคนของแผนกเป็นข้อความรายการเดียวในแถวของตารางแผนก
คสร้างตารางแยกหนึ่งตารางต่อแผนกและใช้โครงสร้างคอลัมน์ซ้ำกันทุกตาราง
งแยกตารางพนักงานกับตารางแผนก แล้วเก็บรหัสแผนกเป็น foreign key ในพนักงาน
เฉลยอธิบาย
ข้อมูลคนละหัวเรื่องควรอยู่คนละตารางและเชื่อมด้วยคีย์เพื่อหลีกเลี่ยงความซ้ำซ้อน ดังนั้นคำตอบที่เหมาะที่สุดคือ “แยกตารางพนักงานกับตารางแผนก แล้วเก็บรหัสแผนกเป็น foreign key ในพนักงาน” ส่วนตัวลวงที่ใกล้เคียงที่สุดไม่ผ่านเพราะ ทำให้ชื่อแผนกซ้ำและเสี่ยงแก้ไขไม่ครบทุกแถว