ขณะนี้ฉันต้องการจัดโครงสร้างตารางการติดตาม / ประวัติดังนี้:
- PrimaryKey - ID
- OtherTableId - fk
- fieldName - ชื่อของฟิลด์ที่ติดตาม
- OLDVALUE
- NewValue
- ชื่อผู้ใช้
- CreateDateTime
โดยพื้นฐานแล้วฉันต้องการมีตารางที่จะติดตามประวัติของตารางอื่นเก็บชื่อคอลัมน์ของฟิลด์ที่ถูกเปลี่ยนแปลงด้วยค่าใหม่และเก่า คำถามของฉันคือทุกคนสามารถเจาะรูในนี้ นอกจากนี้วิธีที่ง่ายที่สุดในการตรวจสอบให้แน่ใจว่ามีเพียงชื่อคอลัมน์จากตารางที่ติดตามเท่านั้นที่ถูกป้อนลงในคอลัมน์ fieldName ปัจจุบันตัวเลือกของฉันจะต้องมี enum ในบริการที่ฉันกำลังสร้างหรือสร้างตารางสถานะอื่นและทำให้ fieldName เป็น fk มีความคิดที่ดีกว่านี้ไหม?
แก้ไข เป้าหมาย: ขณะนี้มีเพียง 2 ฟิลด์ที่เราต้องการติดตาม หนึ่งฟิลด์จะปรากฏบนหน้าเว็บเพื่อแสดงประวัติส่วนอื่น ๆ จะเข้าถึงได้โดยแผนกหนึ่งเท่านั้นและพวกเขามีสิทธิ์เข้าถึงมุมมองของฐานข้อมูลที่พวกเขาสามารถสืบค้นได้ พวกเขาต้องการสอบถามเพียงหนึ่งช่องนี้เพื่อรับข้อมูลว่าใครเปลี่ยนฟิลด์และจะทำอย่างไร นี่คือเหตุผลที่เราต้องการตั้งค่าที่เขตข้อมูลฐานข้อมูลกำหนดคอลัมน์ตารางแทนที่จะมีสำเนาที่แน่นอนของประวัติศาสตร์บันทึกตาราง เราต้องการเพียงสองฟิลด์ที่ถูกติดตามพร้อมกับความเป็นไปได้ในการเพิ่มหรือลบฟิลด์ในอนาคต
ขอบคุณ!