Чи можете ви поділитися своїми думками, як би ви впровадили версію даних у MongoDB. (Я задавав подібне запитання щодо Кассандри . Якщо у вас є якісь думки, який db краще для цього, будь ласка, поділіться)
Припустимо, мені потрібно версії записів у простій адресній книзі. (Записи адресних книг зберігаються як плоскі об'єкти json). Я очікую, що історія:
- буде використовуватися нечасто
- будуть використані всі одразу, щоб представити це у "машині часу"
- не буде більше версій, ніж кілька сотень до одного запису. історія не закінчиться
Я розглядаю такі підходи:
Створіть нову колекцію об’єктів для зберігання історії записів або змін у записах. Він зберігатиме один об’єкт у кожній версії із посиланням на запис у адресної книги. Такі записи виглядають так:
{ '_id': 'новий ідентифікатор', 'user': user_id, 'мітка часу': мітка часу, 'address_book_id': 'ідентифікатор запису адресної книги' 'old_record': {'first_name': 'Jon', 'last_name': 'Doe' ...} }
Цей підхід можна змінити для зберігання масиву версій на документ. Але це здається повільнішим підходом без будь-яких переваг.
Зберігайте версії як серіалізований (JSON) об’єкт, приєднаний до записів адресної книги. Я не впевнений, як приєднати такі об’єкти до документів MongoDB. Можливо, як масив струн. ( За зразком після простої версії документа з CouchDB )