Большая часть систем построена на версиях, то есть значения старых элементов не меняются вообще. Они только удаляются когда число откатов превышает нное количество значений.(эту модель я использую принципиально часто)
Все изменения значений связанных таблиц при этом меняется по FK
А если и приходится что-то делать UPDATE'ом то вопрос оптимизации не стоит.