กรณีวิเคราะห์ฐานข้อมูล 4eb788a63e83a86d9ff2e80b05406f3b9489a993e489b00ed3b33603bde959f2: เมื่อออกแบบหรือแก้ไขระบบ ควรคำนึงถึงความถูกต้อง ความปลอดภัย และผลกระทบ ข้อใดถูกต้องเกี่ยวกับ ระบบจัดการสินค้าคงคลังมีตาราง Products และ Inventory ที่มีปัญหา: เมื่อมีการเปลี่ยนแปลง ProductPrice ในตาราง Products ต้องอัปเดต Inventory ด้วย หากไม่อัปเดต จะทำให้ข้อมูลไม่สอดคล้องกัน ปัญหานี้ควรแก้ไขด้วยวิธีใด?
กเก็บ ProductPrice เพียงในตาราง Products เท่านั้น และใช้ JOIN เมื่อต้องใช้ข้อมูล
ขใช้ Trigger หรือ Stored Procedure เพื่อทำให้การอัปเดตอัตโนมัติ
คไม่เก็บ Price ในตาราง Inventory แล้ว แต่เรียกข้อมูลจาก Products ทุกครั้ง
งส่วนที่ฉันแบ่งของตาราง Inventory ออกเป็นสองตารางเพื่อลดความซ้ำซ้อน
เฉลยอธิบาย
ปัญหานี้คือการทำให้ข้อมูลซ้ำซ้อน (Redundancy) ซึ่งเป็นสาเหตุของความไม่สอดคล้องกัน วิธีแก้ไขที่ดีที่สุดคือไม่เก็บ ProductPrice ในตาราง Inventory แต่เก็บเพียง ProductID และ Quantity ในการค้นหา จะใช้ JOIN เพื่อเรียกราคาจาก Products ตัวเลือก A ใช้ Trigger ได้ แต่ต้องอาศัยการอัปเดตอัตโนมัติ ตัวเลือก C ซ้ำกับ B ตัวเลือก D ไม่ชัดเจน