6
เป็นการดีที่จะมีคอลัมน์“ บันทึกสถานะ” ในตารางฐานข้อมูลหรือไม่?
ฉันต้องชี้แจงก่อนว่าคอลัมน์สถานะไม่ได้มีไว้เพื่อสะท้อนสถานะของรายการในโลกแห่งความเป็นจริงที่แสดงโดยระเบียน (แถว) ในตาราง ค่อนข้างมีวัตถุประสงค์เพื่อแสดงสถานะของบันทึกเอง สามารถทำได้ง่ายเหมือนใช้งาน / ไม่ใช้งานหรือซับซ้อนเช่นอนุมัติ / ลบ / ล็อก / รอดำเนินการ / ปฏิเสธ ฯลฯ สถานะสามารถเก็บไว้ในคอลัมน์จำนวนเต็มบูลีน / สั้นหรือคอลัมน์อักขระเดี่ยวโดยมีการแมปเช่นtrue/ 1= ใช้งานหรือA= อนุมัติแล้ว แนวคิดพื้นฐานคือการมีการสนับสนุนการกู้คืนรีไซเคิล / เหมือนถังขยะในแอปพลิเคชัน (และจำลองในฐานข้อมูล) หากมีส่วนหน้า GUI หรือส่วนต่อประสานอื่นที่สามารถให้ผู้ใช้บันทึก "ลบ" มันไม่ได้ลบบันทึกในตาราง แต่เพียงเปลี่ยนสถานะของบันทึกเป็นไม่ใช้งานหรือถูกลบ เมื่ออินเทอร์เฟซดึงระเบียนมันจะได้รับระเบียนที่ตรงกับเงื่อนไขที่สถานะนั้นใช้งานอยู่หรืออนุมัติแล้วเท่านั้น หากผู้ใช้ทำผิดพลาดและจำเป็นต้องกู้คืน "ลบ" (ในมุมมองของผู้ใช้) DBA สามารถแก้ไขบันทึกกลับเป็น Active หรือ Approved ได้อย่างง่ายดายซึ่งจะดีกว่าการค้นหาสำเนาสำรองและหวังว่าจะค้นหาระเบียนต้นฉบับ ที่นั่น หรืออินเทอร์เฟซของตัวเองสามารถอนุญาตให้ผู้ใช้ดูบันทึกที่ถูกลบในมุมมองที่แยกต่างหากและเรียกคืนพวกเขาตามความจำเป็นหรือแม้กระทั่งลบพวกเขาอย่างถาวร (ลบบันทึกจริง) คำถามของฉัน: นี่เป็นแนวปฏิบัติที่ดีหรือเป็นแนวปฏิบัติที่เลวร้ายหรือไม่? ส่งผลกระทบต่อการทำให้ข้อมูลกลับสู่ปกติหรือไม่ ข้อผิดพลาดที่อาจเกิดขึ้นคืออะไร? มีวิธีอื่นในการบรรลุเป้าหมายเดียวกันหรือไม่? …