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

เก็บชื่อแผนกซ้ำในทุกแถวพนักงานและแก้ไขชื่อแผนกทีละคนเมื่อมีการเปลี่ยนแปลง
รวมพนักงานทุกคนของแผนกเป็นข้อความรายการเดียวในแถวของตารางแผนก
สร้างตารางแยกหนึ่งตารางต่อแผนกและใช้โครงสร้างคอลัมน์ซ้ำกันทุกตาราง
แยกตารางพนักงานกับตารางแผนก แล้วเก็บรหัสแผนกเป็น foreign key ในพนักงาน

เฉลยอธิบาย

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

ข้อสอบอื่นในวิชาความรู้เกี่ยวกับระบบฐานข้อมูล (Database System) และ ระบบการบริหารจัดการข้อมูล (Database Management System)

ดูข้อสอบวิชานี้ทั้งหมด →