แนวปฏิบัติที่ดีที่สุดสำหรับการจัดเก็บข้อมูลเมตาของแต่ละระเบียนในฐานข้อมูลคืออะไร
ฉันต้องการจัดเก็บข้อมูลเมตาทั่วไปเช่นเวลาสร้างและเวลาของการอัปเดตครั้งล่าสุดสำหรับตารางจำนวนมากในฐานข้อมูลของฉัน ฉันพบวิธีแก้ไขปัญหาต่าง ๆ :
เก็บข้อมูลเมตาโดยตรงในตาราง
ข้อดี:
- ข้อมูล Meta เชื่อมโยงโดยตรงกับบันทึก
- ไม่จำเป็นต้องใช้ตัวเชื่อมเพื่อดึงข้อมูลเมตา
จุดด้อย:
- จำเป็นต้องใช้คอลัมน์ที่ซ้ำกันจำนวนมาก (เว้นแต่จะใช้การสืบทอด)
- ข้อมูล Meta และข้อมูลธุรกิจจะไม่แยกออกจากกัน
สร้างตารางข้อมูลเมตาทั่วไปด้วยและใช้ซอฟต์คีย์ต่างประเทศเพื่อลิงค์ข้อมูลไปยังตารางและเรกคอร์ดที่ถูกต้อง
ข้อดี:
- ไม่มีการทำซ้ำคอลัมน์
- ข้อมูล Meta ถูกแยกออกจากข้อมูลธุรกิจ
จุดด้อย:
- ไม่มีลิงก์โดยตรงระหว่างข้อมูลเมตาและข้อมูล (ไม่สามารถใช้ FK ได้)
- เข้าร่วมต้องมีเงื่อนไขเพิ่มเติม
สร้างตารางข้อมูลเมตาแต่ละตารางสำหรับแต่ละตารางที่ต้องการข้อมูลเมตา
ข้อดี:
- ข้อมูล Meta เชื่อมโยงโดยตรงกับบันทึก
- ข้อมูล Meta ถูกแยกออกจากข้อมูลธุรกิจ
จุดด้อย:
- ต้องใช้ตารางเสริมจำนวนมาก
- จำเป็นต้องใช้คอลัมน์ที่ซ้ำกันจำนวนมาก (เว้นแต่จะใช้การสืบทอด)
มีตัวเลือกข้อดีหรือข้อเสียมากกว่าตัวเลือกที่ฉันพูดถึงที่นี่หรือไม่? และวิธีปฏิบัติที่ดีที่สุดในการจัดเก็บข้อมูลเมตานี้คืออะไร
hstore
หรือJSON
อาจช่วยคุณแก้ปัญหาได้?