5
การใช้ที่เก็บ git เป็นแบ็กเอนด์ฐานข้อมูล
ฉันกำลังทำโครงการที่เกี่ยวข้องกับฐานข้อมูลเอกสารที่มีโครงสร้าง ฉันมีต้นไม้ของหมวดหมู่ (~ 1,000 หมวดหมู่มากถึง ~ 50 หมวดหมู่ในแต่ละระดับ) แต่ละหมวดหมู่มีเอกสารที่มีโครงสร้างหลายพันรายการ (ไม่เกิน 10,000) เอกสารแต่ละฉบับมีข้อมูลหลายกิโลไบต์ในรูปแบบโครงสร้างบางรูปแบบ (ฉันต้องการ YAML แต่อาจเป็น JSON หรือ XML ก็ได้เช่นกัน) ผู้ใช้ระบบนี้ดำเนินการหลายประเภท: การเรียกเอกสารเหล่านี้ด้วย ID ค้นหาเอกสารโดยใช้แอตทริบิวต์ที่มีโครงสร้างบางส่วนภายในเอกสารนั้น การแก้ไขเอกสาร (เช่นการเพิ่ม / ลบ / เปลี่ยนชื่อ / รวม); การดำเนินการแก้ไขแต่ละครั้งควรบันทึกเป็นธุรกรรมพร้อมความคิดเห็นบางส่วน การดูประวัติการเปลี่ยนแปลงที่บันทึกไว้สำหรับเอกสารเฉพาะ (รวมถึงการดูว่าใครเปลี่ยนแปลงเอกสารเมื่อใดและทำไมรับเวอร์ชันก่อนหน้า - และอาจเปลี่ยนกลับเป็นเอกสารนี้หากมีการร้องขอ) แน่นอนวิธีแก้ปัญหาแบบดั้งเดิมจะใช้ฐานข้อมูลเอกสารบางประเภท (เช่น CouchDB หรือ Mongo) สำหรับปัญหานี้อย่างไรก็ตามการควบคุมเวอร์ชัน (ประวัติ) นี้ล่อลวงให้ฉันเกิดความคิดที่บ้าคลั่ง - ทำไมฉันไม่ควรใช้ gitเก็บเป็น a แบ็กเอนด์ฐานข้อมูลสำหรับแอปพลิเคชันนี้หรือไม่ ในแวบแรกมันสามารถแก้ไขได้ดังนี้: …