Не могли бы вы поделиться своими мыслями, как бы вы реализовали управление версиями данных в PostgreSQL. (Я задал аналогичный вопрос относительно Cassandra и MongoDB . Если у вас есть какие-либо мысли о том, какой db лучше для этого, поделитесь)
Предположим, мне нужно изменить версии записей в простая адресная книга. Записи адресной книги хранятся в одной таблице без связей для простоты. Я ожидаю, что история:
Я рассматриваю следующие подходы:
Создать новую таблицу объектов для хранения истории записей с копией схемы таблицы адресной книги и добавить метку времени и внешний ключ в таблицу адресной книги.
Создать своего рода таблицу без схемы для хранения изменений в записях адресной книги. Такая таблица будет состоять из: AddressBookId, TimeStamp, FieldName, Value. Таким образом, я буду хранить только изменения в записях, и мне не придется синхронизировать таблицу истории и таблицу адресной книги.
Создайте таблицу для хранения записей адресной книги серализованным (JSON) или изменений в записях адресной книги. Такая таблица будет выглядеть следующим образом: AddressBookId, TimeStamp, Object (varchar). Таким образом, я буду хранить только изменения в записях, и мне не придется синхронизировать таблицу истории и таблицу адресной книги.
Создайте таблицу для хранения записей адресной книги серализованным (JSON) или изменений в записях адресной книги. Такая таблица будет выглядеть следующим образом: AddressBookId, TimeStamp, Object (varchar). Таким образом, я буду хранить только изменения в записях, и мне не придется синхронизировать таблицу истории и таблицу адресной книги.
Создайте таблицу для хранения записей адресной книги серализованным (JSON) или изменений в записях адресной книги. Такая таблица будет выглядеть следующим образом: AddressBookId, TimeStamp, Object (varchar). Опять же, это меньше схемы, поэтому мне не пришлось бы синхронизировать таблицу истории с таблицей адресной книги. ( Это смоделировано на основе простого управления версиями документов с помощью CouchDB )