ระบบจองตั๋วเครื่องบินต้องเก็บข้อมูลเที่ยวบิน ผู้โดยสาร และที่นั่ง โดยที่นั่งหนึ่งในเที่ยวบินหนึ่งจองได้เพียงผู้โดยสารคนเดียว และผู้โดยสารหนึ่งคนจองได้หลายเที่ยวบิน การออกแบบตาราง Booking ควรกำหนด Primary Key เป็นข้อใด

(FlightID, SeatNumber) เป็น Composite Primary Key เพราะระบุที่นั่งในแต่ละเที่ยวบินได้อย่างไม่ซ้ำกัน
PassengerID เพียงอย่างเดียว เพราะผู้โดยสารแต่ละคนมีรหัสประจำตัวไม่ซ้ำกัน
(PassengerID, FlightID, SeatNumber) เป็น Composite Primary Key เพราะต้องใช้ทั้ง 3 ฟิลด์จึงจะระบุการจองได้
BookingID ที่สร้างขึ้นอัตโนมัติเพียงอย่างเดียว โดยไม่ต้องใช้ฟิลด์อื่นร่วมด้วย

เฉลยอธิบาย

เนื่องจากที่นั่งหนึ่งในเที่ยวบินหนึ่งจองได้เพียงผู้โดยสารคนเดียว การใช้ (FlightID, SeatNumber) เป็น Composite Primary Key จึงเหมาะสมที่สุด เพราะคู่ของเที่ยวบินและหมายเลขที่นั่งสามารถระบุการจองได้อย่างไม่ซ้ำกัน และสอดคล้องกับ Business Rule ที่กำหนดไว้ ส่วน PassengerID อย่างเดียวไม่พอเพราะจองได้หลายเที่ยวบิน และการใช้ทั้ง 3 ฟิลด์ก็มีความซ้ำซ้อนเกินจำเป็น

ข้อสอบอื่นในวิชาความรู้ความสามารถในการวิเคราะห์ ออกแบบ ฐานข้อมูล

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