Не могли бы вы поделиться своими мыслями о том, как бы вы реализовали управление версиями данных в MongoDB. (Я задал аналогичный вопрос относительно Cassandra . Если у вас есть какие-либо мысли о том, какой db лучше для этого, поделитесь)
Предположим, мне нужно записать версии в простой адресной книге. (Записи адресной книги хранятся как плоские объекты json). Я ожидаю, что история:
Я рассматриваю следующие подходы:
Создайте новую коллекцию объектов для хранения истории записей или изменений в записях. Он будет хранить один объект для каждой версии со ссылкой на запись адресной книги. Такие записи будут выглядеть следующим образом:
{ '_id': 'новый идентификатор', 'пользователь': user_id, 'timestamp': отметка времени, 'address_book_id': 'идентификатор записи адресной книги' 'old_record': {'first_name': 'Jon', 'last_name': 'Doe' ...} }
Этот подход можно изменить для хранения массива версий для каждого документа. Но это кажется более медленным подходом без каких-либо преимуществ.
Хранить версии как сериализованный (JSON) объект, прикрепленный к записям адресной книги. Я не уверен, как прикрепить такие объекты к документам MongoDB. Возможно, как массив строк. ( Смоделировано на основе простого управления версиями документа с помощью CouchDB )