หากไม่มีความรู้เพิ่มเติมเกี่ยวกับสคีมาฐานข้อมูลของคุณ การอนุญาต ฯลฯ และแนวคิดบางอย่างเกี่ยวกับกลยุทธ์ของคุณเกี่ยวกับแอปพลิเคชันของคุณ จะเป็นการยากอย่างยิ่งที่จะกำหนดกฎเกณฑ์ อย่างน้อยที่สุด แอปพลิเคชันยังอนุญาตให้คุณทำงานในโหมดอ่านอย่างเดียวโดยที่การอัปเดตตารางถูกบล็อกหรือไม่
ในระดับพื้นๆ "ใช่" คุณก็ทำได้...
ปฏิเสธ INSERT, UPDATE, DELETE บน <table> ถึง <user>
อย่างไรก็ตาม ไม่สามารถบอกได้ว่าใบสมัครของคุณจะตอบสนองอย่างไร จากประสบการณ์ของฉัน แอปพลิเคชันส่วนใหญ่จะกระจายข้อผิดพลาดไปทุกที่และร้องไห้นองเลือดหากคุณทำเช่นนี้ อาจทำให้ข้อมูลเสียหายได้ (ข้อผิดพลาดที่ไม่ได้ตรวจสอบ การใช้งานธุรกรรมที่ไม่ดี ฯลฯ) น้อยครั้ง (อาจจะไม่เคย) ที่ฉันเห็นแอปพลิเคชันที่สลับเป็นโหมดอ่านอย่างเดียวอย่างสง่างามเมื่อการเข้าถึงฐานข้อมูลไม่เป็นไปตามที่ออกแบบ/คาดหวังไว้
ทดสอบ! ทดสอบ ทดสอบ ทดสอบ ในสภาพแวดล้อมที่ไม่ได้ใช้งานจริงที่มีการควบคุม จนกว่าคุณจะมีกระบวนการที่เป็นเอกสารรองรับการเปลี่ยนแปลงของคุณ
หากข้อกำหนดของคุณไม่อนุญาตให้มีการหยุดทำงานเป็นเวลานาน (หรือไม่มีการหยุดทำงานเลย) มีวิธีที่ซับซ้อนกว่านี้ในการจัดการกับสิ่งนี้ ความคิดหนึ่งคือการเพิ่มทริกเกอร์หลังการแทรก / หลังการอัปเดตเพื่อแปลงเรกคอร์ดใหม่ / อัปเดตในฟิลด์ใหม่โดยอัตโนมัติในขณะที่คุณเรียกใช้การบำรุงรักษาในชุดงานขนาดเล็ก เมื่อแปลงข้อมูลทั้งหมดแล้ว ให้สลับแอปพลิเคชันไปยังฟิลด์ใหม่และวางฟิลด์เก่า