У нас в проекте используется много связанных таблиц, задача сделать историю. Можно создать копии таблиц, log_tables_name и дублировать все данные, но если у нас связаны все объекты, то эти объекты нельзя будет удалить. Есть ли какое-то правильное решение?
Максим, ты лучше определись точнее. Потому что "скорее всего" - означает что ты точно не знаешь для чего.
Потому что для аудита там будет эконом-вариант. А для репликации истории изменений будет совсем другой подход.
А для отгрузки в warehouse или bigdata - там будет вообще третий вариант с денормализацией например.
Включив телепатию, предположу, что правильное решение для вашего случая - хронологическая база данных и стандарт SQL:2011 (ну или что-то аналогичное в вашей СУБД - не все вендоры стремятся реализовать этот стандарт буква в букву).
Конкретнее можно будет поговорить, если объясните, что вы понимаете под "историей" и какая у вас СУБД.