Зараз я працюю над програмою wiki-esque за допомогою CouchDB і намагаюся реалізувати схему версії документа. Як я це бачу, є два способи зробити це:
- Зберігайте кожну версію як окремий документ
- Зберігайте старіші версії як додатки до одного документа.
Зараз у мене працює форма №1 роботи. Коли користувач редагує документ і зберігає його, бек-енд спочатку копіює попередню версію в новий документ, а потім зберігає нову версію. Кожен документ має масив 'історія', який містить дані про кожну версію (документ _id старої версії, часова мітка, редактор тощо).
Оскільки цей масив історії може бути досить тривалим для часто оновлюваного документа, у мене є погляд, який витягує документ, який не містить історію під час звичайного читання (і інший вигляд для отримання історії).
Моє запитання таке: я відчуваю занепокоєння щодо свого теперішнього підходу і думав про перехід до методу "прихильності". Але я не впевнений. Я сподіваюся, що хтось, хто знає CouchDB краще, ніж я (я був на цьому лише пару тижнів - і це мій перший проект, що використовує CouchDB ... і NoSQL), може сказати мені, які плюси і мінуси у кожного підхід. Або, можливо, є якась інша схема версій, яку я оглядаю?