Как релизовать хранение истории сущности в реляционной базе?

Привет.

Стоит задача сделать хранение историй некой сущности. Это как строка в СУБД, имеющая UID, так и связи с другими таблицами.
Никогда подобные истории не проектировал.
Пока вижу только то, что "история" с точки зрения РСУБД - это все те же стандарные строки и связи, только с новыми ID. Но, что бы была возможность вытащить историю по документу, полагаю, надо на уровне ВСЕХ сущностей, которые будут задействованы в системе, делать ВТОРОЙ идентификатор, который будет уникален в рамках одной версии.

Есть какие-то подводные камни в этом вопросе? Может кто опытом поделиться, как лучше делать подобные вещи?
  • Вопрос задан
  • 425 просмотров
Пригласить эксперта
Ответы на вопрос 2
duhbox
@duhbox
Вот тут
https://habr.com/ru/post/101544/
короткое и прозрачное описание разных вариантов организации версионности.
Ответ написан
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Смотря как это история будет использоваться потом. Если просто для того, что бы иметь возможность восстановить данные или посмотреть кто и что изменил. То простым вариантом будет сбор сущности со всеми связями в объект json и сохранение в таблице типа
id | related_id | date_create | user_id | json_data
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы