Как релизовать хранение истории сущности в реляционной базе?
Вот тут
https://habr.com/ru/post/101544/
короткое и прозрачное описание разных вариантов организации версионности.
Смотря как это история будет использоваться потом. Если просто для того, что бы иметь возможность восстановить данные или посмотреть кто и что изменил. То простым вариантом будет сбор сущности со всеми связями в объект json и сохранение в таблице типа
 id | related_id | date_create | user_id | json_data