กรณีวิเคราะห์ฐานข้อมูล 4b359aef8fed74821b55547bc642fa590eb804f02f05fccdcd4b99dd3ad44d2a: หากต้องออกแบบระบบ ควรคำนึงถึงความถูกต้อง ความปลอดภัย และผลกระทบเกี่ยวกับ ระบบสำหรับการจองโรงแรมต้องจัดเก็บข้อมูล: ห้องพัก ลูกค้า การจอง และการชำระเงิน โดยห้องพัก 1 ห้องสามารถถูกจองได้หลายครั้ง และลูกค้า 1 คนสามารถจองห้องได้หลายครั้ง ควรออกแบบความสัมพันธ์ของตารางอย่างไร?
กสร้างตารางห้องพัก ลูกค้า แยกแต่ไม่มีตารางจองเพราะสามารถเข้าถึงได้จากตารางอื่น
ขสร้างตารางจอง (Booking) เป็น Junction Table ที่เชื่อมโยงห้องพักและลูกค้า และสร้างตารางชำระเงินแยกต่างหากที่อ้างอิงไปยังตารางจอง
คสร้าง 5 ตารางแยก: ห้องพัก ลูกค้า การจอง การชำระเงิน และประเภทห้องพัก
งรวมข้อมูลการจองและชำระเงินในตารางเดียว
เฉลยอธิบาย
ความสัมพันธ์ Many-to-Many ระหว่างห้องพักและลูกค้าต้องมีตาราง Junction Table (จองในที่นี้) เพื่อเก็บข้อมูลการจองของแต่ละห้องและลูกค้า ส่วนการชำระเงินควรอ้างอิงไปยังข้อมูลการจอง ตัวเลือก B ทำให้ข้อมูลเกี่ยวกับการชำระเงินและการจองปนเปกัน C ไม่มีวิธีบันทึกการจองได้อย่างสมบูรณ์ D เพิ่มเติมแต่ตารางประเภทห้องพักอาจไม่จำเป็นสำหรับตัวอย่างนี้