Как релизовать хранение истории сущности в реляционной базе?
Привет.
Стоит задача сделать хранение историй некой сущности. Это как строка в СУБД, имеющая UID, так и связи с другими таблицами.
Никогда подобные истории не проектировал.
Пока вижу только то, что "история" с точки зрения РСУБД - это все те же стандарные строки и связи, только с новыми ID. Но, что бы была возможность вытащить историю по документу, полагаю, надо на уровне ВСЕХ сущностей, которые будут задействованы в системе, делать ВТОРОЙ идентификатор, который будет уникален в рамках одной версии.
Есть какие-то подводные камни в этом вопросе? Может кто опытом поделиться, как лучше делать подобные вещи?
пожалуй слишком смелое заявление. это инструмент аудита в первую очередь. но не факт что в любых вариантах бизнес задач, будет удобен такой инструмент, а так же его использование не асбсолютно прозрачное, может потребоваться адаптация
res2001, кхм... так а описание по собственной ссылке то внимательно прочитать... ;))
с другой стороны, все равно спасибо за инфу - я еще не натыкался, а штука реально может быть очень полезной ))
#, Не читал, каюсь :-) Меня сейчас эта тема не особо волнует. Зашел сюда, т.к. раньше сталкивался с разными вариантами реализации истории да и аналогичные вопросы тут появляются регулярно.
Смотря как это история будет использоваться потом. Если просто для того, что бы иметь возможность восстановить данные или посмотреть кто и что изменил. То простым вариантом будет сбор сущности со всеми связями в объект json и сохранение в таблице типа
id | related_id | date_create | user_id | json_data