กรณีวิเคราะห์ฐานข้อมูล 1d823dd9be1294ef445e6c670f16d41929b6bb4538e53e958c0a245789d7c139: หากต้องออกแบบระบบ ควรคำนึงถึงความถูกต้อง ความปลอดภัย และผลกระทบเกี่ยวกับ ในการออกแบบฐานข้อมูลสำหรับระบบจองห้องประชุม องค์กรต้องการให้ผู้ใช้สามารถจองห้องได้ แต่ต้องป้องกันการจองห้องเดียวกันมากกว่าหนึ่งครั้งในช่วงเวลาเดียวกัน และต้องตรวจสอบว่าผู้ใช้นั้นมีสิทธิ์ในการจองหรือไม่ แนวคิดใดที่เหมาะสมที่สุด?
กใช้ Stored Procedure เพื่อจัดการการจองอย่างเดียว
ขใช้ Check Constraint เพื่อป้องกันการจองซ้ำซ้อน
คใช้ Trigger เพื่อตรวจสอบข้อมูลก่อนอนุญาตการจอง และใช้ Row-Level Lock เพื่อป้องกันการจองซ้ำซ้อน
งใช้ View เพื่อแสดงข้อมูลห้องว่างเท่านั้น
เฉลยอธิบาย
สำหรับการจองห้องประชุม ต้องรวมกลไกหลายชนิดเข้าด้วยกัน โดยใช้ Trigger เพื่อตรวจสอบเงื่อนไข (เช่น สิทธิ์ของผู้ใช้) และใช้ Row-Level Lock เพื่อล็อคข้อมูลห้องในช่วงเวลาจอง เพื่อป้องกันการจองซ้ำซ้อนจากผู้ใช้หลายคน ตัวเลือก B เป็นแค่การแสดงข้อมูล ตัวเลือก C เป็นส่วนหนึ่งของวิธีแก้ไข แต่ไม่ได้พูดถึง Concurrency Control และตัวเลือก D เป็นเพียงข้อจำกัดบนคอลัมน์