Saat ini saya sedang mengerjakan aplikasi wiki-esque menggunakan CouchDB dan saya mencoba menerapkan skema versi dokumen. Cara saya melihatnya ada dua cara untuk melakukan ini:
- Simpan setiap versi sebagai dokumen terpisah
- Simpan versi lama sebagai lampiran pada satu dokumen.
Saat ini, saya punya bentuk # 1 yang berfungsi. Ketika pengguna mengedit dokumen dan menyimpannya, back-end pertama menyalin revisi sebelumnya ke dokumen baru dan kemudian menyimpan versi baru. Setiap dokumen memiliki larik 'riwayat' yang berisi data pada setiap versi (dokumen _id dari versi lama, cap waktu, editor, dll.).
Karena larik sejarah ini dapat menjadi sangat panjang untuk dokumen yang sering diperbarui, saya memiliki pandangan yang mengambil dokumen tanpa riwayat selama bacaan normal (dan tampilan lain untuk mengambil sejarah).
Pertanyaan saya adalah ini: Saya merasa tidak nyaman dengan pendekatan saya saat ini dan telah berpikir untuk mengubah metode 'attachment'. Tapi saya tidak yakin. Saya berharap seseorang yang mengenal CouchDB lebih baik daripada saya (Saya baru melakukan ini selama beberapa minggu - dan ini adalah proyek pertama saya menggunakan CouchDB ... dan NoSQL) dapat memberi tahu saya apa kelebihan dan kekurangan masing-masing pendekatan. Atau mungkin ada skema versi lain yang saya abaikan?